只返回一个属性"_id"

use*_*708 17 mongodb

我想知道如果有只返回一个方式_id,user_idtotal没有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
            }
    ]
}
Run Code Online (Sandbox Code Playgroud)

McG*_*gle 29

find的第二个参数允许您选择字段.所以你可以使用它(注意总是选择_id字段):

db.mycollection.find({}, {"user_id": 1, "total": 1});
Run Code Online (Sandbox Code Playgroud)

您也可以排除某些字段,因此这是等效的:

db.mycollection.find({}, {"items": 0});
Run Code Online (Sandbox Code Playgroud)

您可以通过执行以下操作排除_id字段:

db.mycollection.find({}, {"user_id": 1, "_id": 0});
Run Code Online (Sandbox Code Playgroud)


rad*_*tek 8

我正在寻找的是返回ID列表,因此仅返回_id,但作为所有文档的数组。我这样做是这样的:

db. mycollection.distinct("_id", {})
Run Code Online (Sandbox Code Playgroud)

第一个参数是您的Distict字段,第二个参数是您的查询。更多关于这里。希望这可以帮助有类似要求的人。干杯!