mongodb日常操作(查询)

首先介绍日常增,删,改,查询:

1:查询

show collections  ----查看数据库下的集合

db.collection-name.find()    --------最基础的查询db后面直接跟集合的名称,不能完全显示真个集合的数据,可以用it显示

db.collection-name.findOne()   ----------一定要注意大写,返回集合的第一条记录,如果没数据,是NULL

db.collection-name.find().forEach(printjson);可以显示所有行

条件查询:

举例:> db.post.find();
{ "_id" : ObjectId("4eae0669b81d17242113d9c4"), "name" : "docments" }
{ "_id" : ObjectId("4eae067ab81d17242113d9c5"), "age" : 60 }

db.post.find({age:60}).forEach(printjson); ==select * from post where age=60  ------显示所有age为60的doc

db.post.find({age:60},{name:true}).forEach(printjson) ==select name from post where age=60  ---显示age为60的所有name列

 db.post.find().limit(3)==select * from where rownum<=3;

db.post.update({name:"docments"},{$set:{name:"newdoc"}}) ----更新name=”docments“的记录为name=“newdoc”只更新第一行

db.post.remove({name:"newdoc"})  ==delete from post where name="newdoc"; 

 条件操作查询:

db.collection.find({ "field" : { $gt: value } } ); // 大于: field > value
db.collection.find({ "field" : { $lt: value } } ); // 小于: field < value
db.collection.find({ "field" : { $gte: value } } ); // 大于等于: field >= value
db.collection.find({ "field" : { $lte: value } } ); // 小于等于: field <= value

db.collection.find({"field":{$ne:value}});//不等于:field!=value

db.users.find({age : {$all : [20, 30]}});

可以查询出 {name: 'David', age: 26, age: [ 20, 30, 40 ] }
但查询不出 {name: 'David', age: 26, age: [ 20, 7, 9 ] }

db.users.find({age: {$exists: true}});  ---查询存在sge字段的记录

db.post.find({age: {$exists: false}}); --查询不包含age字段的记录

db.post.insert({name:"docments",age:null})

 db.post.find({age:null})查询age为null的记录

{ "_id" : ObjectId("4eae0a2eb81d17242113d9cb"), "name" : "docments", "newname" : "newdoc" }
{ "_id" : ObjectId("4eb89d1023c8705b173a80f0"), "name" : "docments", "age" : null }

可以看到没有age的记录也会显示

db.post.find({age:{"$in":[null], "$exists":true}})这样就可以查到age为null的记录

db.post.find({age: {$mod : [ 7, 4 ] } })取模7,余下4的记录 select * from post where mod(age,7)=4

db.post.find({age: {$not:{$mod : [ 7, 4 ]} } }) == select * from post where mod(age,7)!=4

{ "_id" : ObjectId("4eae067ab81d17242113d9c5"), "age" : 60, "name" : "hank" }

db.post.find({name:/doc/i}) #忽略大小写

查询x 的值在2,4,6 范围内的数据
db.things.find({x:{$in: [2,4,6]}});==select * from things where x in(2,4,6);

db.post.find({age:{$nin:[60,70]}})==select * from post where age not in(60,70)  --这里其实和null一样的,如果没有age这个key的,也会显示出来

$size 匹配数组里面的个数

{ "_id" : ObjectId("4eb8c06823c8705b173a80fa"), "num" : [ 1, 2, 3 ] }

db.post.find({num:{$size:3}}) ----可以查看到上面的记录

db.post.find().count() ---统计记录数

db.post.find({name:/^d/i}) --匹配name首字母为d的记录,后面加了i,大小写都显示

db.post.find().skip(3).limit(2) --跳过3条记录后,显示前两条

db.post.find()sort({age:-1})--按照age降序排列,升序是1

你可能感兴趣的:(mongodb日常操作(查询))