在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" ] }