已解决13.26K 浏览2021/10/11数据库 0 sheriarty14 2021/09/30 0条评论 请问一下userSchema.add可以新增属性,但是只有新增后添加的文档才有这些属性,那旧数据如何新增这些属性呢? 新增的属性是写在schema.add方法里的,如果上面的问题处理好了之后就是所有的数据都有新增的属性了,那是不是需要将add的属性再移动到原始的schema里呢?谢谢 Mr.Mongo 更改状态以发布 2021/10/11 1 答案 活跃已投票最新最老的 0 xiaoxu1.13K 发布 2021/10/09 1 条评论 历史数据单独去处理。 1、通过循环去更新这些历史数据来增加字段或者批量更新来处理,这个需要一定规则来执行,如果数据完全没有规则可循,那么就比较麻烦。 2、MongoDB无模式,为什么要统一字段了? sheriarty 发表新评论 2021/10/11 sheriarty 已评论 2021/10/11 非常感谢您的回复。 关于第二个问题我贴一下代码。比如url是新增的schema import mongoose from “mongoose”; const userSchema = new mongoose.Schema( { name: { type: String, required: true }, email: { type: String, required: true }, password: { type: String, required: true }, __v: { type: Number, select: false, }, }, { timestamps: true, } ); export default mongoose.model( “user”, userSchema.add({ url: { type: String, required: true, }, }) ); ————历史数据更新后需要将url属性写回到schema里面吗,还是保留上面的写法呢————– import mongoose from “mongoose”; const userSchema = new mongoose.Schema( { name: { type: String, required: true }, email: { type: String, required: true }, password: { type: String, required: true }, url: { type: String, required: true, }, __v: { type: Number, select: false, }, }, { timestamps: true, } ); export default mongoose.model(“user”); 注册 或 登录
非常感谢您的回复。
关于第二个问题我贴一下代码。比如url是新增的schema
import mongoose from “mongoose”;
const userSchema = new mongoose.Schema(
{
name: { type: String, required: true },
email: { type: String, required: true },
password: { type: String, required: true },
__v: {
type: Number,
select: false,
},
},
{
timestamps: true,
}
);
export default mongoose.model(
“user”,
userSchema.add({
url: {
type: String,
required: true,
},
})
);
————历史数据更新后需要将url属性写回到schema里面吗,还是保留上面的写法呢————–
import mongoose from “mongoose”;
const userSchema = new mongoose.Schema(
{
name: { type: String, required: true },
email: { type: String, required: true },
password: { type: String, required: true },
url: {
type: String,
required: true,
},
__v: {
type: Number,
select: false,
},
},
{
timestamps: true,
}
);
export default mongoose.model(“user”);