【发布时间】:2015-07-25 00:46:32
【问题描述】:
使用 MongoDB,我想查找一个集合中的所有文档,这些文档的 _id 出现在另一个集合的子文档数组中。在这里使用 $in 运算符实际上并不起作用,因为我只是试图匹配子文档中的单个值。
假设我有以下来自 db.foos 的文档:
{ _id: 1, foo: [ { bar_id: 1 }, { bar_id: 3 } ] }
以及以下 db.bars 集合:
{ _id: 1, foo: "bar" }
{ _id: 2, foo: "abr" }
{ _id: 3, foo: "rab" }
我想在 db.bars 中查找 _id 可以在 foo 数组中找到的所有文档(在本例中返回 _id 为 1 和 3 的 db.bars)。像这样的:
var foos = db.foos.findOne( { _id: 1 } )
db.bars.find( _id: { $in: foos.foo.bar_id } )
当然,那是行不通的。我将如何实现这一目标?
【问题讨论】:
标签: javascript mongodb