使用mongoose通过嵌套文档属性查找

时间:2011-12-07 22:46:23

标签: javascript mongodb node.js mongoose

我目前有一组文档,每个文档都包含指向该集合中其他文档的数组。我需要查询此集合以查找嵌套在数组中的文档包含特定属性的文档。我希望这能更清楚地解释我的要求:

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 }
    ]
});

1 个答案:

答案 0 :(得分:3)

{
  $or: [
    { 'doc.list1.0.prop': 'foo' }
    { 'doc.list2.0.prop': 'foo' }
  ]
}

http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-%24or