以下是如何将数据插入“Products”MongoDB集合(使用Meteor):
Products.insert(
{
productOne:
{
publicData:
{
pricePerUnit : 1,
label : "The first product"
},
privateData:
{
test1: "xxxxx",
test2: "xxxxx"
}
},
productTwo:
{
publicData:
{
pricePerUnit : 2,
label : "The second product"
},
privateData:
{
test1: "yyyyy",
test2: "yyyyy"
}
}
}
);
我想检索所有产品,但没有“privateData”子文档,以获取此信息:
{
productOne:
{
publicData:
{
pricePerUnit : 1,
label : "The first product"
}
},
productTwo:
{
publicData:
{
pricePerUnit : 2,
label : "The second product"
}
}
}
我用“$ elemMatch”尝试了几件事,但我真的没有成功,我很难理解我甚至应该这样做。
有人会有建议吗?任何帮助将不胜感激。
谢谢!
答案 0 :(得分:3)
您的查询将与此类似
Products.find({},{
fields: {
privateData: 0
}
}
privateData:0
将确保省略该字段。
请参阅https://docs.mongodb.org/manual/tutorial/project-fields-from-query-results/了解详情
答案 1 :(得分:0)
如果您可以使用聚合框架,则可以使用$project
运算符:
db.<colletion_name>.aggregate( { $project: { publicData: 1} } );
您将只使用publicData
字段