在mondoDb中打印查询结果

时间:2017-11-05 20:43:43

标签: node.js mongodb

我在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"
            }
        ]
    }

1 个答案:

答案 0 :(得分:2)

您的回调正在获得errresult,因此如果成功,结果集应填充到result

只需执行console.log(JSON.stringify(result);

即可打印的jok

我看到的另一件事情在你的代码上并不理想 - 将结果返回到回调的方式并不是通常的方式。
通常的做法是首先传递错误,然后传递结果,如果成功,则错误应为null(或false)。
因此,遵循此约定,您可以传递错误:

return fcallback(err); 

如果失败:

return fcallback(null, result);