首页 > 解决方案 > 为什么我不能替换猫鼬文档中的字段?

问题描述

vk_account.settings是猫鼬模式中的一个数组。

vk_account.save(function(err, vk_account) {
    if(err) return cb(err, null);
    vk_account.Sources = updated_sources;
    vk_account.settings = account_setting;
    cb(null, vk_account);
})

我想从 中替换vk_account.settings(Array)为某个对象vk_account.settings,即account_setting(Object),但是当我替换它时,它不会被替换,并且vk_account.settings像以前一样具有旧值。

据我了解,猫鼬禁止并且不会将Object分配给Array类型的变量,但我不想保存它,我只想将它发送给客户端并忘记。

标签: mongodbmongoose

解决方案


首先,您不能为保存和响应分配相同的值vk_account...然后您必须将其更改instanceobject使用toObject(),然后您可以在其中添加键

       vk_account.save(function(err, vk) {
          if(err) return cb(err, null);
          var object = vk.toObject();
          vk.Sources = updated_sources;
          vk.settings = account_setting;
          cb(null, vk);
        })

推荐阅读