mongoDB高级查询

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"}});

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值