普通查询
对表myTable,查询所有记录:
//方法一:
db.getCollection("myTable").find({})
//方法二:
db.myTable.find({})
对表myTable,查询所有记录,并按照字段myKey逆序排序:
db.getCollection("myTable").find({}).sort({"myKey":-1})
对表myTable,查询所有记录,并按照字段myKey1逆序排序,myKey2升序排序:
db.getCollection("myTable").find({}).sort({"myKey1":-1,"myKey2":1})
对表myTable,查询匹配某一字段的所有记录:
db.myTable.find({ <field>: <value> })
模糊查询
通过在模糊查询关键词两侧加斜杠的方式(值的两端无需引号),对某一字段的值进行模糊查询的匹配:
db.myTable.find({"mykey": /sub_value/})
嵌套查询
根据官方文档:https://docs.mongodb.com/manual/tutorial/query-embedded-documents/#std-label-read-operations-embedded-documents
什么是嵌套文档,举例:
[
{ item: "journal", qty: 25, size: { h: 14, w: 21, uom: "cm" }, status: "A" },
{ item: "notebook", qty: 50, size: { h: 8.5, w: 11, uom: "in" }, status: "A" },
{ item: "paper", qty: 100, size: { h: 8.5, w: 11, uom: "in" }, status: "D" },
{ item: "planner", qty: 75, size: { h: 22.85, w: 30, uom: "cm" }, status: "D" },
{ item: "postcard", qty: 45, size: { h: 10, w: 15.25, uom: "cm" }, status: "A" }
]
比如要匹配size字段中uom字段为cm的记录,可以用如下方法查询到所有符合条件的记录:
db.myTable.find{ "size.uom": "in" }
也可以利用查询操作符(Query Operator),语法为:
db.myTable.find{ <field1>: { <operator1>: <value1> }, ... }
具体的查询操作符有:
- 等于:$eq
- 小于:$lt
- 大于:$gt
- 小于等于:$lte
- 大于等于:$gtes
还可以在多个并列条件下查询,各个条件通过逗号隔开:
db.myTable.find{ "size.h": { $lt: 15 }, "size.uom": "in", status: "D" }