我如何对Mongo中的数组执行$和查询?

时间:2011-09-30 14:50:45

标签: mongodb intersection

我在mongo中有一个集合,其中的对象如下所示:

{ name:"Scott", bio:"Stumped", roles:["USR","ADM"] }

可能有更多角色。我想执行任何交集查询的组合,如下所示:

db.coll.find({$and:[{roles:"USR"},{roles:{$ne:"ADM"}}]})

有些查询可能都是role =,有些可能是所有角色!=,有些可能与上面的例子混在一起。我用$或$ nor得到了一些成功的衡量标准,但绝对没有任何问题可以解决我和$和。我甚至尝试利用$ where和$ elemMatch来模仿我想要的东西。我也真的试图避免与应用程序处理交集的多个查询。想法?

2 个答案:

答案 0 :(得分:2)

找到答案:

db.coll.find( {roles : { $all : ["USR"], $nin : ["ADM"]}} )

感谢Hohhi带领我走正确的道路!

答案 1 :(得分:1)

db.coll.find("roles":{$all:["USR","ADM"]}})

我认为这会对你有帮助,至少会返回你想要的结果