[MongoDB] Query, update, index and group

/*
    1. Query Operators
*/
db.posts.find({
    viewsCount: {$get: 1000, $lte: 3000}
}, {_id: 0, viewsCount: 1, title: 1})

// $in
db.posts.find({
    categories: {$in: [‘ios‘]}
}, {categories: 1})

//$where
db.posts.find({
    $where: function(){
        return this.categories.length>15
    }
}, {categories: 1, title: 1})

//see how many categories from previous query:
db.posts.find({
    $where: function(){
        return this.categories.length>15
    }
}, {categories: 1, title: 1})[0].categories.length

Update:

/*
    2. Update
*/
var d = db.posts.findOne();
//change the author email:
d.author.email = "[email protected]"
//update the database
db.post.update({_id: d._id}, d);

//update mutli-document
db.posts.update({viewsCount: {$gt: 3000}}, {$set: {newKey: true}}, {multi:true}) //add new key, set mutli

Performance and indexes:

/*
    3. Performance and indexes
*/
//create the data
db.numbers.drop();
var num = 5000000,
i = 0;
 for(i = 0; i < num; i ++){
    var randomNumber = Math.floor(Math.random()*10000);
    db.numbers.insert({number:randomNumber});
    //print(i);
 }

db.number.find({number: {$gt: 1000, $lt: 3000}, {_id: 0, number: 1}}).explain(); //it scan all the doucment, took 3500ms

//add index:
db.numbers.ensureIndex({number: 1});
//took 1046 ms, scan 1m instead of 5m 

Group:

/*
    4. $group
*/

//sum up the viewCount, rename the result as ‘totalViewsCount‘
db.posts.aggregate({
    $group: {
        _id:null,
        totalViewsCount: {$sum: ‘$viewsCount‘}
    }
})

//adding 1 for each document
db.posts.aggregate({
    $group: {
        _id:null,
        totalNumberOfDocuments: {$sum: 1}
    }
})

// =
db.posts.count()
时间: 2024-12-11 15:22:19

[MongoDB] Query, update, index and group的相关文章

关于mongodb的 数组分组 array group

mongodb支持array类型 在group的功能方面,mongodb确实不错.对于复杂的数据处理用mapreduce,但是这个玩意很慢,比较适合脚本处理数据,不适合实时数据查询 在实时数据处理方面得用管道,关于管道语法方面,参看: http://blog.csdn.net/terry_water/article/details/43529367 如果$class_artist是数组,需要对数组里面的数据进行group,那么可以使用$unwind ,它的功能就是把数组拆分出来,形成多条数据.

java.lang.IllegalArgumentException: Illegal character in query at index 261

在BaseFragment中使用了LoadingPage,而LoadingPage的联网加载使用的是AsyncHttpClient.一直报java.lang.IllegalArgumentException: Illegal character in query at index 261解析不成功,改成OkHttp解析即可. 网上有些方法,说先URLEncode再拼接,如果解决不了,换个联网请求方式,试一下.

解决MyEclipse开启后总是不停的在Update index

最近MyEclipse开启之后总是不停的在 update index,很是耗时间, 查找资料发现Update index...是Maven在不断更新, 解决办法如下: Window --> Preferences --> Myeclipse --> Maven4Myeclipse --> 去除Download repository index updates on startup前的勾选即可 版权声明:本文为博主原创文章,未经博主允许不得转载.

[转]使用Maven添加依赖项时(Add Dependency)时,没有提示项目可用,并且在Console中,输出: Unable to update index for central|http://repo1.maven.org/maven2 。

使用Maven添加依赖项时(Add Dependency)时,没有提示项目可用,并且在Console中,输出: Unable to update index for central|http://repo1.maven.org/maven2 . 解决方式如下: 1.通过其它方式下载如下两个文件: http://repo1.maven.org/maven2/.index/nexus-maven-repository-index.properties http://repo1.maven.org/m

Unable to update index for central

Unable to update index for central http://repo1.maven.org/maven2/ 就是这句,myeclipse启动后控制台输出这句话:解决办法:1.在myeclipse3.4(我用的这个版本)里面Window => Preferences => Myeclipse Enterprise Workbench => Maven4Myeclipse => Maven=>禁用Download repository index upda

(转载)解决eclipse安装maven的问题:Unable to update index for central|http://repo1.maven.org/maven2

问题产生如下:因为单位使用了过滤,访问Internet时,超过10M的内容就拒绝.因为maven插件在初始时,需要下载Maven的index文件,这个文件比较大,有38M多,下载不成功.所以造成使用Maven添加依赖项时(Add Dependency)时,没有提示项目可用,并且在Console中,输出:Unable to update index for central|http://repo1.maven.org/maven2 . 解决方式如下:1.通过其它方式下载如下两个文件:http://

禁用Eclipse update index

用Eclipse构建Maven项目后,默认每次打开Eclipse都会update index,这会占用大量资源,让电脑非常卡.其实update index就是自动更新而已,可以关闭这个功能,在运行Maven项目时再更新就行了,不用每次打开Eclipse就更新. 关闭方法: Window ----> Preferences ---> Maven ---> 取消勾选Download repository index updates on startup

MongoDB之update

Update操作只作用于集合中存在的文档.MongoDB提供了如下方法来更新集合中的文档: db.collection.update() db.collection.updateOne() New in version 3.2 db.collection.updateMany() New in version 3.2 db.collection.replaceOne() New in version 3. 你可以通过指定criteria或者filter来指定你想更新的文档: update函数执行

mongodb中update方法的upsert和multi

mongodb中的update的形式是这样的: db.collectionName.update(query, obj, upsert, multi); 对于upsert(默认为false):如果upsert=true,如果query找到了符合条件的行,则修改这些行,如果没有找到,则追加一行符合query和obj的行.如果upsert为false,找不到时,不追加. 对于multi(默认为false): 如果multi=true,则修改所有符合条件的行,否则只修改第一条符合条件的行.