您的位置:首页 > 数据库 > Mongodb

mongoDB高级查询

2012-11-29 21:35 295 查看
1 游标的使用:

>var x=db.c1.find();

>x.hasNext();

>x.next()

>var cur=db.c1.find().skip(10).limit(8);

>cur.forEach(function(x){print(tojson(x))});

输出:



2 NUll查询

db.c1.find({age:{$exists:1,$in:[null]}}); 查找存在age列且值为null的文档

或者 db.c1.find({age:{$type:10,name:"user1"}}); 其中$type:10表示null

3 $slice

db.c1.find({name:"user1",{post:{$slice:3}});

其中$slice:3表示post数组中的前三个

db.c1.find({name:"user1"},{post{$slice:[1,2]}});

表示从第一个开始取两个

4 update 语法

db.collection.update(criteria,objNew,upsert,multi);

criteria:用于设置查询条件对象

ObjNew:用于设置更新对象的内容

Upsert:如果记录已经存在,更新它,否则新增一个记录

Multi:如果有多个符合条件的记录,全部更新(默认值为0,且只能用于魔术变量)

db.c1.update({name:"user1"},{name:"user11"},1); 如果user1不存在则添加user11记录

4.1 $set

db.c1.update({name:"user11"},{$set:{name:"user1"}},0,1);

db.c1.update({name:"user1"},{$set:{age:10}},0,1);

4.2 $inc

db.c1.update({},{$inc:{score:10}},0,1);

{}匹配所有的记录

如果有score字段则加十分,如果没有则增加score字段且值为10

4.3 $push和$pop

db.c1.update({name:"user1"},{$push:{arr:4}});

在arr数组中加元素4

db.c1.update({name:"user1"},{$pop:{arr:1}});

从arr数组中去除最后那个元素

$pushAll 压入整个数组

4.4 $addToSet

db.c1.update({name:"user1"},{$addToSet:{arr:{$each:[7,8,9]}}});

依次压入数组内容【7,8,9】

4.5 $pull

db.c1.update({name:"user1"},{$pull:{arr:5}});

$pull删除数组中的具体值

$pullAll用法:db.c1.update({name:"user1"},{$pullAll:{arr:[2,4]}});

4.6 $rename

db.c1.update({name:"user1"},{$rename:{arr:"post"}});
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: