我正在尝试检索对象属性数组,但我无法检索对象中除_id之外的任何属性。但我可以一次检索整个数组,甚至可以检索数组中的单个对象,但不能检索每个对象中的属性。
这是JSON结构
[{
"_id": "5a82df96f2730d4bb177ffe1",
"project_id": 123,
"project_name": "proj11",
"tasks": [],
"links": [],
"__v": 0,
"upsert": true
}]
这个代码
taskDelay(req,res) {
ProjectMaster.find({ "project_id": 123 })
.then(response => {
var result = response[0];
var resultId = response[0]._id;
var resultName = response[0].project_name;
var resultProjId = response[0].project_id;
console.log(result); // outputs the object
console.log(resultId); // outputs 5a82df96f2730d4bb177ffe1
console.log(resultName); // undefined
console.log(resultProjId); // undefined
res.status(200).send(response)
})
.catch(error => res
.status(400)
.send(error));
}
显示其他属性的未定义的原因可能是什么?
答案 0 :(得分:0)
最后,我找到了解决这个问题的方法。它是以数据格式mongodb发送的响应。我试着做JSON.parse,但它没有用。 toObject()
成功了。
taskDelay(req,res) {
ProjectMaster.find({ "project_id": 123 })
.then(response => {
var result = response[0];
var resultId = response[0]._id;
var resultName = response[0].toObject().project_name;
var resultProjId = response[0].toObject().project_id;
console.log(result); // outputs the object
console.log(resultId); // outputs 5a82df96f2730d4bb177ffe1
console.log(resultName); // outputs 123
console.log(resultProjId); // outputs proj11
res.status(200).send(response)
})
.catch(error => res
.status(400)
.send(error));
}
我做错了不完全阅读mongoose文件!此行为与mongoose数据格式有关。