如何从mongo DB中检索子记录

时间:2012-09-14 10:35:38

标签: node.js mongodb

我有一个看起来像这样的数据库:

{
    "_id" : ObjectId("50525e55467f67da3f8baf06"),
    "client" : "client1" 
}
{
    "_id" : ObjectId("505262f0deed32a758410b1c"),
    "client" : "client2" 
}
{
    "_id" : ObjectId("5052fe0a37083fd981616589"),
    "client" : "client3",
    "products" : [
        {"name" : "product1"},
        {"name" : "product2"}
    ]
}

如何在不检索client3记录的情况下检索client3的产品列表? 输出应如下所示:

[
    {"name" : "product1"},
    {"name" : "product2"}
]

2 个答案:

答案 0 :(得分:2)

我认为您不能完全排除client3记录,因为产品是此记录的一部分,但您可以选择只需 products字段,如下所示:

db.<dbname>.find({ 'client' : 'client3' }, { 'products' : 1, '_id' : 0 })

答案 1 :(得分:0)

此外 - 如果您想获得匹配的子记录 - 请参阅此处

http://docs.mongodb.org/manual/reference/operator/projection/positional/

在find的项目部分使用$运算符来指定第n个子记录,其中第一个匹配您的查询。