题
我的文档具有一个数组字段的键强>
<强>键1 和<强> Keys2 强>是两个阵列
我想所有在那里的键包含任何价值文档的键1 和的中的任意值的 Keys2 强>
解决方案
有没有来表示这个查询很好的方式,但(为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;"})
在2.6+,你可以通过$和运营商做这个最新版本的MongoDB。
db.test.find({$and:[{keys: {$in: Keys1}},{keys: {$in: Keys2}}]})
不隶属于 StackOverflow