0

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

{
    "_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"}
]
4

2 回答 2

2

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

db.<dbname>.find({ 'client' : 'client3' }, { 'products' : 1, '_id' : 0 })
于 2012-09-14T10:48:46.420 回答
0

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

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

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

于 2014-06-01T10:09:09.210 回答