从mongodb数据库返回除排除字段之外的所有字段

时间:2018-03-07 16:34:59

标签: mongodb

我在mongodb中创建了一个名为“Scores”的集合,并且该集合中存储的文档属于以下类型:

    {
"_id": "5aa0128de579e00738c3e108",
"id": "LszN4n0TdsCsoHi8AAAA",
"score": 14
}
{
"_id": "5aa007454b20c52ba488a5f4",
"id": "WVLRujy7djsxarrxAAAB",
"score": 8
},
{
"_id": "5aa007484b20c52ba488a5f5",
"id": "cml_M0-E_UqjslzvAAAA",
"score": 5
}

但我想从所有文档中仅检索得分字段并排除_id和id字段,但即使我设置_id:0,id:0,我也无法这样做。在查找查询之后,服务器返回所有文档中的所有字段

   db.collection('Scores').find({},{"id":0}).toArray().then((docs)=>{
        console.log(JSON.stringify(docs,undefined,2));
    },(err)=>{
        console.log(err);
    });

1 个答案:

答案 0 :(得分:0)

您需要像这样改进代码:

db.collection('Scores').find({}, {
        score: 1,
        _id: 0
    })
    .then((docs) => {
            if (docs) {
                console.log(docs));
        } else {
            console.log('There is no data in DB');
        }

    }, (err) => {
        console.log(err);
    });

它为您提供以下输出:

[
   {
       "score" : 14
   },
   {
       "score" : 8
   },
   {
       "score" : 5
   }
]

此处您无需传递.toArray(),因为find()始终在array中提供回复,其中findOne()Object中给予回复。