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”