我目前有一组文档,每个文档都包含指向该集合中其他文档的数组。我需要查询此集合以查找嵌套在数组中的文档包含特定属性的文档。我希望这能更清楚地解释我的要求:
if doc.list1[0].prop = 'foo' or doc.list2[0].prop = 'foo' then select doc
我尝试过像这样使用.find()但无济于事。
{
'doc.list1': 'foo',
$or: [
{ 'doc.list2': 'foo' }
]
}
我是否在正确的轨道上?因为我不认为我。这是我从文档中可以看到的最好的。
修改
这是我的实际查询初始化,使用与Thomas的建议相同的布局。
var query = this.Word.find({
$or: [
{ 'before.0.cleanWord': topic },
{ 'after.0.cleanWord': topic },
{ 'cleanWord': topic }
]
});
答案 0 :(得分:3)
{
$or: [
{ 'doc.list1.0.prop': 'foo' }
{ 'doc.list2.0.prop': 'foo' }
]
}
http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-%24or