我想知道是否有办法只返回_id
,user_id
和total
而没有items
子文档。
{
"_id" : 122,
"user_id" : 123456,
"total" : 100,
"items" : [
{
"item_name" : "my_item_one",
"price" : 20
},
{
"item_name" : "my_item_two",
"price" : 50
},
{
"item_name" : "my_item_three",
"price" : 30
}
]
}
答案 0 :(得分:23)
find lets you select fields的第二个参数。所以你可以使用它(注意总是选择_id字段):
db.mycollection.find({}, {"user_id": 1, "total": 1});
您也可以排除某些字段,因此这是等效的:
db.mycollection.find({}, {"items": 0});
您可以通过执行以下操作排除_id字段:
db.mycollection.find({}, {"user_id": 1, "_id": 0});
答案 1 :(得分:6)
我正在寻找的是返回ID列表,因此仅返回_id,但作为所有文档的数组。我是这样做的:
db. mycollection.distinct("_id", {})
第一个参数是您的Distict字段,第二个参数是您的查询。有关不同的here的更多信息。希望这可以帮助有类似要求的人。干杯!