我想console.log()mongodb数据库查询的结果,而不进入mongo shell。以下是我的代码。相关部分以粗体显示。如何将mongodb数据库查询记录到控制台(而不是mongo shell)?
router.put('/quotes/:id', (req, res, next) => {
let personToUpdate = req.params.id;
**console.log("old name: " + JSON.stringify(db.collection("quotes").findOne({ _id: ObjectId(personToUpdate) })));**
db.collection("quotes").findOneAndUpdate(
{ _id: ObjectId(personToUpdate)},
{$set: {
name: req.body.name
}
}, function (err, object) {
if (err) {
console.warn(err.message);
} else {
**console.log("new name: " + req.body.name);**
}
}
);
});
我曾尝试:
console.dir(),但该返回[对象,对象。 我试过print()和printjson(),但那些都是mongo shell独占命令。
最终结果应该是,当用户通过put请求更改名称时,首先将存储在数据库中的旧名称记录到控制台,然后在findOneAndUpdate()mongodb命令的末尾进行更改该名称记录了用户通过req.body.name提交的新名称
为什么记录异步调用的结果? – lilezek
我不明白为什么这是一个问题。记录(“新名称:”+ req.body.name)工作得很好。我的困难是在进行更改之前获取当前存储在数据库中的旧名称的日志。 –
请阅读'findOne'如何工作:http://mongodb.github.io/node-mongodb-native/2.2/api/Collection.html#findOne –