$ setIsSubset用于Mongo中的常规查询

时间:2015-03-02 20:59:44

标签: mongodb mongodb-query

我希望在MongoDB中对常规(即非聚合)查询执行等效的$setIsSubset http://docs.mongodb.org/manual/reference/operator/aggregation/setIsSubset/。我怎么能这样做?

假设我有文件

{ 'x' : ['A', 'B'] }
{ 'x' : ['A', 'D'] }

那个

filter = ['A', 'B', C']

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

{ 'x' : ['A', 'B'] }

似乎大多数条件命令都匹配任何而不是 all。我也希望它是一个子集,所以它似乎$and和{{1 {}不会将$all[A,B]匹配。

1 个答案:

答案 0 :(得分:4)

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

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

输出     

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