我执行了 mongoose 查找查询并将结果存储在对象中。
var enabledPlayerQuery = playerCollection.find({playerMobile:{$gt:0}})
然后在那个对象上,我做了这样的 exec 操作以在每个对象中添加一个总硬币的值,但是在控制台上当我用来打印对象时它显示值没有被分配。该对象仍然保持以前的状态。
enabledPlayerQuery.exec(function(err,queryResult){
async.each(queryResult, function(users ,result){
user.totalCoins = 1000;
}, function(err){
//anything console
})
}
但是没有分配总硬币值(value)。
我尝试使用 _.extend 方法来扩展这两个对象。还创建了另一个对象并将前一个对象的属性粘贴到该对象,然后它也不起作用。
最佳答案
mongoose 查找查询返回一个 mongoose 对象而不是 JS 对象。因此,您不能为 playerCollection
模型的 Mongoose 模式中未定义的返回对象分配键。为此,您需要通过在查找查询本身中使用 lean()
将此 mongoose 文档转换为 JS 对象:
var enabledPlayerQuery = playerCollection.find({playerMobile:{$gt:0}}).lean()
或者通过在结果对象上使用toObject()
。
enabledPlayerQuery.exec(function(err,queryResult){
async.each(queryResult, function(users ,result){
user.toObject()
user.totalCoins = 1000;
}, function(err){
//anything console
})
}
关于javascript - Mongoose 的结果没有分配对象属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52463636/