MongoDB简介
MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。
MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。
下面给大家介绍MongoDB查询文档操作的实例
先把student删除,再重新插入数据
> db.student.drop() true > db.student.insert([{ \"_id\" : 1, \"name\" : \"zhangsan\", \"age\": 27, \"sex\": 1 }, { \"_id\" : 2, \"name\" : \"lisi\", \"age\": 27 } ,{ \"_id\" : 3, \"name\" : \"wangwu\", \"age\": 30 }, { \"_id\" : 4, \"name\" : \"zhaoliu\", \"age\": 28 }, { \"_id\" : 5, \"name\" : \"qianliu\", \"age\": 33 }, { \"_id\" : 6, \"name\" : \"sunba\", \"age\": 32 }]) BulkWriteResult({ \"writeErrors\" : [ ], \"writeConcernErrors\" : [ ], \"nInserted\" : 6, \"nUpserted\" : 0, \"nMatched\" : 0, \"nModified\" : 0, \"nRemoved\" : 0, \"upserted\" : [ ] }) > db.student.find() { \"_id\" : 1, \"name\" : \"zhangsan\", \"age\" : 27 } { \"_id\" : 2, \"name\" : \"lisi\", \"age\" : 27 } { \"_id\" : 3, \"name\" : \"wangwu\", \"age\" : 30 } { \"_id\" : 4, \"name\" : \"zhaoliu\", \"age\" : 28 } { \"_id\" : 5, \"name\" : \"qianliu\", \"age\" : 33 } { \"_id\" : 6, \"name\" : \"sunba\", \"age\" : 32 }
1、查询指定键
db.集合名称.find({查询条件},{指定键})
指定键:1表示显示,0表示不显示,_id默认显示
> db.student.find({},{name:1}) { \"_id\" : 1, \"name\" : \"zhangsan\" } { \"_id\" : 2, \"name\" : \"lisi\" } { \"_id\" : 3, \"name\" : \"wangwu\" } { \"_id\" : 4, \"name\" : \"zhaoliu\" } { \"_id\" : 5, \"name\" : \"qianliu\" } { \"_id\" : 6, \"name\" : \"sunba\" } > db.student.find({},{_id:0, age:0}) { \"name\" : \"zhangsan\", \"sex\" : 1 } { \"name\" : \"lisi\" } { \"name\" : \"wangwu\" } { \"name\" : \"zhaoliu\" } { \"name\" : \"qianliu\" } { \"name\" : \"sunba\" } > db.student.find({},{_id:0, name:1}) { \"name\" : \"zhangsan\" } { \"name\" : \"lisi\" } { \"name\" : \"wangwu\" } { \"name\" : \"zhaoliu\" } { \"name\" : \"qianliu\" } { \"name\" : \"sunba\" }
2、各种查询方式
$lt:< $lte:<= $gt:> $gte:>= $ne:!= > db.student.find({age:{$lt:30}}) { \"_id\" : 1, \"name\" : \"zhangsan\", \"age\" : 27, \"sex\" : 1 } { \"_id\" : 2, \"name\" : \"lisi\", \"age\" : 27 } { \"_id\" : 4, \"name\" : \"zhaoliu\", \"age\" : 28 } > db.student.find({age:{$ne:27}}) { \"_id\" : 3, \"name\" : \"wangwu\", \"age\" : 30 } { \"_id\" : 4, \"name\" : \"zhaoliu\", \"age\" : 28 } { \"_id\" : 5, \"name\" : \"qianliu\", \"age\" : 33 } { \"_id\" : 6, \"name\" : \"sunba\", \"age\" : 32 }
$in:包含
$nin:不包含
> db.student.find({age:{$in:[27,28]}}) { \"_id\" : 1, \"name\" : \"zhangsan\", \"age\" : 27, \"sex\" : 1 } { \"_id\" : 2, \"name\" : \"lisi\", \"age\" : 27 } { \"_id\" : 4, \"name\" : \"zhaoliu\", \"age\" : 28 } > db.student.find({age:{$nin:[27,28]}}) { \"_id\" : 3, \"name\" : \"wangwu\", \"age\" : 30 } { \"_id\" : 5, \"name\" : \"qianliu\", \"age\" : 33 } { \"_id\" : 6, \"name\" : \"sunba\", \"age\" : 32 }
$or:或者
> db.student.find({$or:[{age:{$lt:29}}, {name:\"sunba\"}]}) { \"_id\" : 1, \"name\" : \"zhangsan\", \"age\" : 27, \"sex\" : 1 } { \"_id\" : 2, \"name\" : \"lisi\", \"age\" : 27 } { \"_id\" : 4, \"name\" : \"zhaoliu\", \"age\" : 28 } { \"_id\" : 6, \"name\" : \"sunba\", \"age\" : 32 }
null:空值
> db.student.find({sex: null}) { \"_id\" : 2, \"name\" : \"lisi\", \"age\" : 27 } { \"_id\" : 3, \"name\" : \"wangwu\", \"age\" : 30 } { \"_id\" : 4, \"name\" : \"zhaoliu\", \"age\" : 28 } { \"_id\" : 5, \"name\" : \"qianliu\", \"age\" : 33 } { \"_id\" : 6, \"name\" : \"sunba\", \"age\" : 32 }
$type:键是某种类型的
double:1
string:2
...
> db.student.insert({_id:7, name:7, age:70}) WriteResult({ \"nInserted\" : 1 }) > db.student.find({name: {$type: 2}}) { \"_id\" : 1, \"name\" : \"zhangsan\", \"age\" : 27, \"sex\" : 1 } { \"_id\" : 2, \"name\" : \"lisi\", \"age\" : 27 } { \"_id\" : 3, \"name\" : \"wangwu\", \"age\" : 30 } { \"_id\" : 4, \"name\" : \"zhaoliu\", \"age\" : 28 } { \"_id\" : 5, \"name\" : \"qianliu\", \"age\" : 33 } { \"_id\" : 6, \"name\" : \"sunba\", \"age\" : 32 } > db.student.find({name: {$type: 1}}) { \"_id\" : 7, \"name\" : 7, \"age\" : 70 }
正则表达式
> db.student.find({name: /si\\b/}) { \"_id\" : 2, \"name\" : \"lisi\", \"age\" : 27 }
db.集合名称.findOne({查询条件},{指定键})
查询出符合条件的第一条数据
> db.student.findOne() { \"_id\" : 1, \"name\" : \"zhangsan\", \"age\" : 27, \"sex\" : 1 }
db.集合名称.find({查询条件},{指定键}).limit(数字)
查询前几条数据
> db.student.find().limit(3) { \"_id\" : 1, \"name\" : \"zhangsan\", \"age\" : 27, \"sex\" : 1 } { \"_id\" : 2, \"name\" : \"lisi\", \"age\" : 27 } { \"_id\" : 3, \"name\" : \"wangwu\", \"age\" : 30 }
db.集合名称.find({查询条件},{指定键}).skip(数字)
跳过前几条数据
> db.student.find().skip(2) { \"_id\" : 3, \"name\" : \"wangwu\", \"age\" : 30 } { \"_id\" : 4, \"name\" : \"zhaoliu\", \"age\" : 28 } { \"_id\" : 5, \"name\" : \"qianliu\", \"age\" : 33 } { \"_id\" : 6, \"name\" : \"sunba\", \"age\" : 32 } { \"_id\" : 7, \"name\" : 7, \"age\" : 70 }
可以使用limit()和skip()实现分页
> db.student.find().skip(0).limit(3) { \"_id\" : 1, \"name\" : \"zhangsan\", \"age\" : 27, \"sex\" : 1 } { \"_id\" : 2, \"name\" : \"lisi\", \"age\" : 27 } { \"_id\" : 3, \"name\" : \"wangwu\", \"age\" : 30 } > db.student.find().skip(3).limit(3) { \"_id\" : 4, \"name\" : \"zhaoliu\", \"age\" : 28 } { \"_id\" : 5, \"name\" : \"qianliu\", \"age\" : 33 } { \"_id\" : 6, \"name\" : \"sunba\", \"age\" : 32 } > db.student.find().skip(6).limit(3) { \"_id\" : 7, \"name\" : 7, \"age\" : 70 }
db.集合名称.find().sort({键:数字})
数字为1表示升序,数字为2表示降序
> db.student.find().sort({age:1}) { \"_id\" : 1, \"name\" : \"zhangsan\", \"age\" : 27, \"sex\" : 1 } { \"_id\" : 2, \"name\" : \"lisi\", \"age\" : 27 } { \"_id\" : 4, \"name\" : \"zhaoliu\", \"age\" : 28 } { \"_id\" : 3, \"name\" : \"wangwu\", \"age\" : 30 } { \"_id\" : 6, \"name\" : \"sunba\", \"age\" : 32 } { \"_id\" : 5, \"name\" : \"qianliu\", \"age\" : 33 } { \"_id\" : 7, \"name\" : 7, \"age\" : 70 } > db.student.find().sort({age:1, _id:-1}) { \"_id\" : 2, \"name\" : \"lisi\", \"age\" : 27 } { \"_id\" : 1, \"name\" : \"zhangsan\", \"age\" : 27, \"sex\" : 1 } { \"_id\" : 4, \"name\" : \"zhaoliu\", \"age\" : 28 } { \"_id\" : 3, \"name\" : \"wangwu\", \"age\" : 30 } { \"_id\" : 6, \"name\" : \"sunba\", \"age\" : 32 } { \"_id\" : 5, \"name\" : \"qianliu\", \"age\" : 33 } { \"_id\" : 7, \"name\" : 7, \"age\" : 70 }
以上内容是小编给大家介绍的MongoDB快速入门笔记(四)之MongoDB查询文档操作实例代码,希望对大家有所帮助!
本文地址:https://www.stayed.cn/item/18779
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我