javascript - 如何在 MongoDB 中修改动态添加的文档字段

标签 javascript node.js mongodb mongoose mean-stack

我正在为一个项目使用 MEAN.io。在 MEAN.io 中,用于管理用户的包位于 node_modules 中,因此不得修改。用户的 MongoDB 模型位于那里,所以如果我想添加新字段,我必须使用我自己自定义创建的包中的 schema.add 方法来完成:

user.schema.add({
    field1: [],
    deleted_at: {
      type: Date,
      default: null
    },
    banned_at: {
      type: Date,
      default: null
    },
    created_at: {
      type: Date,
      default: new Date()
    },
    field2: {
      type: Number,
      default: 0
    },
    field3: {
      type: Number,
      default: 0
    },
    field4: {
      type: Number,
      default: 0
    }
});

一切似乎都运行良好,但是当我尝试修改 deleted_at 字段时,执行如下操作:

user.deleted_at = new Date();
console.log(user);

用户对象不显示 deleted_at 字段的任何痕迹。它不仅会改变任何东西。

那么问题是如何修改动态添加的字段?

提前致谢!

最佳答案

问题是设计模式被编译成模型并且不能动态编辑。此线程 ( here ) 包含有关 mongoose 的信息,但对于将字段动态添加到数据库模式的其他方法也是如此。

如果您不确定您的模式,您应该使用混合类型。浏览@vkarpov15 评论以获得其他选项。

关于javascript - 如何在 MongoDB 中修改动态添加的文档字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37967807/

相关文章:

.net - 如何: Back button support "Ajax"

javascript - 客户端浏览器的 Socket.IO 检测有时会失败

node.js - 尝试在express中编写用户登录身份验证代码,无法在 Node 中使用express-session登录

node.js - 类型 'x' 上不存在 Mongoose 属性 'Document'

mongodb - Meteor 模板在 Bootstrap 模式对话框内渲染

javascript - 如何在循环中为 jQuery 函数的变量设置动画?

javascript - 如果 wordpress postid 为偶数且 GTM,则显示脚本

javascript - Bootstrap 导航链接在 ReactJS 中不起作用

javascript - 关于函数内部的 Javascript 函数的解释?

python - Cassandra 性能低下?