Mongodb:如何在查询中使用 and ($and) 运算符


您可以在 MongoDB 中使用$and运算符来搜索匹配多个条件的文档。

该运算符使用以下基本语法:

 db.myCollection.find({
  " $and ": [
    {" field1 ": " hello "},
    {" field2 ": { $gte : 10 }}
  ]
})

此特定示例搜索名为myCollection 的集合中的所有文档,其中field1等于“hello” field2的值大于或等于 10。

以下示例展示了如何在收藏团队的实践中使用此语法,并提供以下文档:

 db.teams.insertOne({team: " Mavs ", points: 30, rebounds: 8})
db.teams.insertOne({team: " Mavs ", points: 30, rebounds: 12})
db.teams.insertOne({team: " Spurs ", points: 20, rebounds: 7})
db.teams.insertOne({team: " Spurs ", points: 25, rebounds: 5})
db.teams.insertOne({team: " Spurs ", points: 23, rebounds: 9})

示例 1:对两个字段使用 AND 运算符

以下代码显示如何在team集合中查找“team”字段等于“Spurs”且“points”字段的值大于或等于 22 的所有文档:

 db.teams.find({
  " $and ": [
    {" team ": " Spurs "},
    {" points ": { $gte : 22 }}
  ]
})

该查询返回以下文档:

 { _id: ObjectId("6201824afd435937399d6b6c"),
  team: 'Spurs',
  points: 25,
  rebounds: 5 }
{ _id: ObjectId("6201824afd435937399d6b6d"),
  team: 'Spurs',
  points: 23,
  rebounds: 9 }

请注意,输出中的每个文档的 team 字段中包含“Spurs”,并且 Points 字段中的值大于或等于 22。

示例 2:对两个以上字段使用 AND 运算符

以下代码显示如何查找team集合中的所有文档,其中字段“team”不等于“Mavs”且字段“points”中的值大于或等于 22 并且字段“rebounds”中的值» 该字段小于 7:

 db.teams.find({
  " $and ": [
    {" team ": { $ne : " Mavs "}},
    {" points ": { $gte : 22 }},
    {" rebounds ": { $lt : 7 }}
  ]
})

该查询返回以下文档:

 { _id: ObjectId("6201824afd435937399d6b6c"),
  team: 'Spurs',
  points: 25,
  rebounds: 5 }

请注意,这是集合中唯一满足所有三个条件的文档:

  • “Team”字段不等于“ Mavs
  • “points”字段的值大于或等于22
  • “篮板”字段的值小于7

注意:您可以在此处找到$and函数的完整文档。

其他资源

以下教程解释了如何在 MongoDB 中执行其他常见操作:

MongoDB:如何检查字段是否包含字符串
MongoDB:如何使用“NO IN”查询
MongoDB:如何在特定字段中搜索“not null”

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注