如何在 MongoDB 中修改添加的动态文档字段
Posted
技术标签:
【中文标题】如何在 MongoDB 中修改添加的动态文档字段【英文标题】:How to modify added dynamically document fields in 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 字段的任何痕迹。它不只是改变任何东西。
所以问题是如何修改动态添加的字段?
提前致谢!
【问题讨论】:
【参考方案1】:问题是设计模式被编译成模型并且不能动态编辑。该线程 (here) 包含有关 mongoose 的信息,但对于将字段动态添加到数据库模式的其他方法也是如此。
如果您不确定您的架构,您应该使用混合类型。通过@vkarpov15 cmets 了解其他选项。
【讨论】:
以上是关于如何在 MongoDB 中修改添加的动态文档字段的主要内容,如果未能解决你的问题,请参考以下文章
如何在 MongoDB 中搜索动态字段并首先对最佳匹配结果进行排序