$setIsSubset 用于 Mongo 中的常规查询

Fur*_*rge 2 mongodb mongodb-query

我正在寻找对MongoDB 中的常规(即非聚合)查询执行相当于$setIsSubset http://docs.mongodb.org/manual/reference/operator/aggregation/setIsSubset/的操作。我怎样才能做到这一点?

假设我有文件

{ 'x' : ['A', 'B'] }
{ 'x' : ['A', 'D'] }
Run Code Online (Sandbox Code Playgroud)

然后

{ 'x' : ['A', 'B'] }
{ 'x' : ['A', 'D'] }
Run Code Online (Sandbox Code Playgroud)

我想做一个 find({"x" : {'$setIsSubSet':filter}}),只希望能回来

{ 'x' : ['A', 'B'] }
Run Code Online (Sandbox Code Playgroud)

似乎大多数条件命令都与任何不匹配 我也希望它是一个子集,因此它似乎$and$all不会匹配[A,B][A,B,C]

Dav*_*ere 6

您可以在 shell 中尝试以下操作:

var filer = ['A', 'B', 'C']
db.coll2.find({x: {"$not": {"$elemMatch": {"$nin" : filer }}}})
Run Code Online (Sandbox Code Playgroud)

输出

    {“_id”:ObjectId(“54f4d72f1f22d4a529052760”),“x”:[“A”,“B”]}