我在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);
});
答案 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
中给予回复。