我在MongoDb中有以下选择查询。我想控制日志返回查询。
student.findCourses = (fcallback) => {
global.db.collection('students').find(({}, { "courses.courseName": true, _id: false }).toArray, (err, result) => {
if (err) {
var jError = { "status": "error", "message": "ERROR -> student.js -> 001" }
console.log(jError)
return fcallback(true, jError)
}
var jOk = { "status": "ok", "message": "student.js -> found -> 000" }
var jResult = ????
console.log(jOk)
return fcallback(false, jOk)
})
}
我想在console.log中看到以下内容。而不是通过手动定义它。我希望它直接来自db。
有办法做到这一点吗?
{
"courses": [
{
"courseName": "Web-development"
},
{
"courseName": "Databases"
},
{
"courseName": "Databases"
}
]
}
答案 0 :(得分:2)
您的回调正在获得err
和result
,因此如果成功,结果集应填充到result
。
只需执行console.log(JSON.stringify(result);
jok
我看到的另一件事情在你的代码上并不理想 - 将结果返回到回调的方式并不是通常的方式。
通常的做法是首先传递错误,然后传递结果,如果成功,则错误应为null(或false)。
因此,遵循此约定,您可以传递错误:
return fcallback(err);
如果失败:
return fcallback(null, result);