在mongoDB中查找子字段

时间:2012-02-23 13:37:07

标签: mongodb nosql

如何在下面显示的对象中选择子文档作者,而不直接访问它,即authors[0],以便我得到的结果是{"_id":"4f44af6a024342300e000002", visible: true}

对象:

{
    _id:     "4f44af6a024342300e000001",
    title:   "A book", 
    created: "2012-02-22T14:12:51.305Z"
    authors: [{"_id":"4f44af6a024342300e000002", visible: true}] 
}

我已经能够通过这样做来更新它,但选择它似乎是一个完全不同的故事:

books.update({_id: "4f44af6a024342300e000001",'authors._id': "4f44af6a024342300e000002"}, 
             {$set: {'books.$.visible': true}}, function(err) {
    // ...
});

1 个答案:

答案 0 :(得分:1)

目前无法实现(有关额外详情,请参阅类似问题)

In MongoDB, how does on get the value in a field for an embedded document, but query based on a different value

在下一个版本中,聚合框架可以朝这个方向迈出一步,但真正的解决方案是虚拟集合。

暂时(简称),只有在通过父母时才使用嵌入式文档。