欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

mongodb日常操作(查询)

程序员文章站 2022-05-28 07:55:21
...

mongodb日常操作(查询) 首先介绍日常增,删,改,查询: 1:查询 show collections ----查看数据库下的集合 db.collection-name.find() --------最基础的查询db后面直接跟集合的名称,不能完全显示真个集合的数据,可以用it显示 db.collection-name.findOn

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

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

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

db.collection.find({ "field" : { $lte: value } } ); // 小于等于: field

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