我的文档具有一个数组字段的

<强>键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}}]})
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top