javascript - Mongoose 的结果没有分配对象属性

标签 javascript node.js mongodb mongoose

我执行了 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/

相关文章:

javascript - 编译 Babel/React 时出错(未知选项)

javascript - 如何制作一个自动滑动的javascript slider

javascript - gulp-usemin 可以接受多个文件吗?

node.js - 用于 Nodejs 和 Mongo 的 gcp 上的 Kubernetes

java - 将 Morphia 与 Java EE 结合使用

javascript - 我如何检查使用 jQuery 滚动了多少元素?

javascript - 未捕获的类型错误 : Cannot set property 'innerHTML' of null [VueJs]

node.js - NodeJS Passport : multilogin via two strategies - serialize issue

node.js - 如何使用任何 Node JS 模块将 Kafka 消费者与 SSL 设置连接起来

mongodb - 创建 MongoClient 实例时如何捕获异常