mongodb日常操作(查询)
2013-04-24 10:08
429 查看
首先介绍日常增,删,改,查询:
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
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 索引创建,查询,删除操作
- java 中 mongodb的各种操作 模糊查询 精确查询 等等
- java操作mongodb进行查询,常用筛选条件
- php操作MongoDB基础教程(连接、新增、修改、删除、查询)
- MongoDb的普通查询操作
- mongoDB 性能优化:如何使用普通查询语句替代 aggregate 操作?
- MongoDB 操作手冊CRUD查询指针
- Mongodb操作之查询(循序渐进对比SQL语句)(转http://www.tuicool.com/articles/UzQj6rF)
- java 操作mongodb查询条件设置
- MongoDB创建表步骤,Mongo常用的数据库操作命令,查询,添加,更新,删除_MongoDB 性能监测
- play framework框架下,连接到MongoDB时的特殊操作(与或查询,模糊查询,范围查询,数据排序等)
- mongodb简单查询操作
- MongoDB笔记四——查询操作
- Mongodb基础用法及查询操作[转载]
- java操作mongodb(高级查询)
- MongoDB各种查询操作详解
- MongoDB日常运维操作命令小结
- MongoDB的查询操作
- MongoDB 操作手册CRUD查询
- MongoDB查询操作限制返回字段的方法