【问题标题】:How to modify added dynamically document fields in MongoDB如何在 MongoDB 中修改添加的动态文档字段
【发布时间】:2016-10-24 09:10:24
【问题描述】:

我正在将 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 字段的任何痕迹。它不只是改变任何东西。

所以问题是如何修改动态添加的字段?

提前致谢!

【问题讨论】:

    标签: javascript node.js mongodb mongoose mean-stack


    【解决方案1】:

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

    如果您不确定您的架构,您应该使用混合类型。通过@vkarpov15 cmets 了解其他选项。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-10
      • 2020-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-27
      • 2013-11-18
      • 1970-01-01
      相关资源
      最近更新 更多