我有一个看起来像这样的数据库:
{
"_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"}
]
答案 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个子记录,其中第一个匹配您的查询。