本文共 2080 字,大约阅读时间需要 6 分钟。
使用 find()
方法查询集合中的所有文档。默认情况下,find()
会返回所有字段。
db.coll3.find()
要查询单个文档,可以使用 findOne()
方法。若不指定查询条件,findOne()
会返回集合中第一个文档。
db.coll3.findOne()
要查询满足特定条件的单个文档,可以指定查询条件。
db.coll3.findOne({ sex: 0 })
常用的查询条件如下:
操作 | 格式 | 例子 | MySQL 类似语句 |
---|---|---|---|
等于 | {key: value} | db.user.find({ _id: 1 }) | where id = 1 |
小于 | {key: {$lt: value}} | db.user.find({ age: {$lt: 18} }) | where age < 18 |
小于等于 | {key: {$lte: value}} | db.user.find({ age: {$lte: 18} }) | where age <= 18 |
大于 | {key: {$gt: value}} | db.user.find({ age: {$gt: 18} }) | where age > 18 |
大于等于 | {key: {$gte: value}} | db.user.find({ age: {$gte: 18} }) | where age >= 18 |
不等于 | {key: {$ne: value}} | db.user.find({ age: {$ne: 18} }) | where age != 18 |
包含 | {key: /value/} | db.user.find({ name: /赵/ }) | where name like '%赵%' |
以...开头 | {key: /^value/} | db.user.find({ name: /^赵/ }) | where name like '赵%' |
以...结尾 | {key: /value$/} | db.user.find({ name: /赵$/ }) | where name like '%赵' |
在...之中 | {key: {$in: [v1, v2, ...]}} | db.user.find({ age: {$in: [1, 2, 3]}) | where age in (1, 2, 3) |
不在...之中 | {key: {$nin: [v1, v2, ...]}} | db.user.find({ age: {$nin: [1, 2, 3]}) | where age not in (1, 2, 3) |
可以通过在查询对象中指定多个键来实现AND逻辑。
db.coll3.find({ "name": "露娜", sex: 0 })
使用 $or
操作符来实现OR逻辑。
db.coll3.find({ "$or": [{ age: 17 }, { sex: 1 }] })
可以将AND和OR条件结合使用。
db.coll3.find({ sex: 1, $or: [{ age: 18 }, { age: 19 }] })
使用正则表达式进行模糊查询。
db.coll3.find({ "name": /赵/ })
默认情况下,find()
会返回所有字段。如果只需要特定字段,可以使用投影操作符。
db.coll3.find({ sex: 0 }, { age: 1, name: 1 })
如果不希望返回 _id
,可以在投影对象中指定 _id: 0
。
db.coll3.find({ sex: 0 }, { age: 1, name: 1, _id: 0 })
使用 count()
方法统计满足条件的文档数量。
db.coll3.find({ "age": { $lt: 20 } }).count() # 返回4db.coll3.find({ "age": { $lt: 20 }, "sex": 0 }).count() # 返回2
使用 sort()
方法对查询结果进行排序。
db.coll3.find({ "age": { $lte: 20 }, "$or": [{ name: "孙尚香" }, { sex: 0 }] }).sort({ sex: 1, age: -1 })
使用 skip()
和 limit()
方法进行分页查询。
db.coll3.find().skip(2).limit(2)
或者结合排序和分页:
db.coll3.find().sort({ age: -1 }).skip(2).limit(2)
以上内容经过优化后更加简洁明了,适合技术读者阅读,同时经过优化有助于提高搜索引擎排名。
转载地址:http://eiffk.baihongyu.com/