现在的位置: 首页 > 综合 > 正文

mongoDB高级查询

2017年09月13日 ⁄ 综合 ⁄ 共 1277字 ⁄ 字号 评论关闭

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

 

抱歉!评论已关闭.