在Node.js
应用中,我想通过Mongoose
从数据库中获取一些数据。我是这样做的:
Users.find({_id:userID}).exec(function(err, users){
});
因为users
是一个类似Mongoose
对象的数组,所以我不能这样做:
users.toJSON();
如果我使用findOne
,这是有效的,但现在不起作用。 users.toObject()
也无效,我收到此错误:
object has no method 'toObject'
如果我在查询中使用lean()
,请执行以下操作:
Users.find({_id:userID}).lean().exec(function(err, users){
});
这有效,但还有其他问题。例如,如果数组值没有值,而不是像这样显示:
myval:[]
根本没有显示键/值对!!
我想要的是,我必须编辑用户结果,显然,它的Mongoose
对象我不能。因为我必须将其转换为常规JSON
但是如何?
答案 0 :(得分:0)
只需使用findOne
代替find
,您就可以编辑实例。
如果你绝对必须使用find
,那么知道users
参数是用户实例的数组,所以只需循环遍历它们并逐个编辑它们。
Users.find({_id:userID}).exec(function(err, users){
users.forEach(function(user){
// edit my user here
});
});