2009-11-09 72 views

回答

3

目前还没有很好的方法来表示这个查询(从1.1.2开始) - 如果您在列表中提出要求或提交功能请求,我们可以尝试取得某些功能。

现在最好的办法可能是使用在查询中的$做一半的工作:结合

db.test.find({keys: {$in: Keys1}})

为此,您可以用$哪里可以做Keys2部分(但不会利用索引 - 这就是为什么尽量使用常规查询语法)。这将是这个样子:

db.test.find({keys: {$in: Keys1}, $where: "for (i in this.keys) { for (j in Keys2) { if (this.keys[i] == Keys2[j]) return true;}} return false;"})

在最新版本的MongoDB 2.6+,你可以通过$和运营商做到这一点。

db.test.find({$and:[{keys: {$in: Keys1}},{keys: {$in: Keys2}}]})