您的当前位置:首页正文

MongoDB的查询

2024-11-07 来源:个人技术集锦

普通查询

对表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" }
Top