在 MongoDB 中不使用 $elemMatch 运算符查找数组中的精确匹配项?
作为一种替代方案,使用 $eq 运算符。我们先使用文档创建集合 −
> db.equalDemo.insertOne({_id:1,"StudentFriendNames":["John","Carol","Sam"]}); { "acknowledged" : true, "insertedId" : 1 } > db.equalDemo.insertOne({_id:2,"StudentFriendNames":null}); { "acknowledged" : true, "insertedId" : 2 } > db.equalDemo.insertOne({_id:3,"StudentFriendNames":["Carol"]}); { "acknowledged" : true, "insertedId" : 3 } > db.equalDemo.insertOne({_id:4,"StudentFriendNames":["Sam"]}); { "acknowledged" : true, "insertedId" : 4 }
以下是使用 find() 方法从集合中显示所有文档的查询 −
> db.equalDemo.find();
这将产生以下输出 −
{ "_id" : 1, "StudentFriendNames" : [ "John", "Carol", "Sam" ] } { "_id" : 2, "StudentFriendNames" : null } { "_id" : 3, "StudentFriendNames" : [ "Carol" ] } { "_id" : 4, "StudentFriendNames" : [ "Sam" ] }
以下是使用 $eq 获取精确匹配项的查询 −
> db.equalDemo.find({"StudentFriendNames":{$eq:["Carol"]}});
这将产生以下输出 −
{ "_id" : 3, "StudentFriendNames" : [ "Carol" ] }
广告