如何为嵌套文档定义猫鼬模式
How to define mongoose schema for nested documents
我需要为下面给出的嵌套文档定义 mongoose 模式。
文件:
"Options":[{"Value":["28","30","32","34","36","38","40","42","44","46"],"_id":{"$oid":"5de8427af55716115dd43c8f"},"Name":"Size"},{"Value":["White"],"_id":{"$oid":"5de8427af55716115dd43c8e"},"Name":"Colour"}]
我像下面这样声明,但它不起作用。
const Product = new Schema(
{
Options: [{ value: { _id: ObjectId, Name: String } }]
},
{
timestamps: {
createdAt: "createdAt",
updatedAt: "updatedAt"
},
collection: "products"
}
);
这里我需要一个架构,如果我直接 add/update 相同的文档,那么它将被添加。
您需要像这样修改架构:
{
Options: [ new Schema ({ value: [...], _id: Schema.Types.ObjectId, Name: String })]
}
这是使用 Mongoose 创建 子文档 数组的方法。如果您不使用 "new Schema" 关键字,您实际上是在创建一个类型为 "Mixed" 的字段,它需要不同的方式来处理更新。
你也可以省略_id,它应该会自动添加。
您可以在此页面上找到有关子文档的更多信息:
https://mongoosejs.com/docs/subdocs.html
...以及混合类型字段:https://mongoosejs.com/docs/schematypes.html#mixed
...这将很快解释问题。
{
Options: [ new Schema ({ _id: mongoose.Types.ObjectId(),value: [String], Name: String } })]
}
我需要为下面给出的嵌套文档定义 mongoose 模式。
文件:
"Options":[{"Value":["28","30","32","34","36","38","40","42","44","46"],"_id":{"$oid":"5de8427af55716115dd43c8f"},"Name":"Size"},{"Value":["White"],"_id":{"$oid":"5de8427af55716115dd43c8e"},"Name":"Colour"}]
我像下面这样声明,但它不起作用。
const Product = new Schema(
{
Options: [{ value: { _id: ObjectId, Name: String } }]
},
{
timestamps: {
createdAt: "createdAt",
updatedAt: "updatedAt"
},
collection: "products"
}
);
这里我需要一个架构,如果我直接 add/update 相同的文档,那么它将被添加。
您需要像这样修改架构:
{
Options: [ new Schema ({ value: [...], _id: Schema.Types.ObjectId, Name: String })]
}
这是使用 Mongoose 创建 子文档 数组的方法。如果您不使用 "new Schema" 关键字,您实际上是在创建一个类型为 "Mixed" 的字段,它需要不同的方式来处理更新。
你也可以省略_id,它应该会自动添加。
您可以在此页面上找到有关子文档的更多信息: https://mongoosejs.com/docs/subdocs.html
...以及混合类型字段:https://mongoosejs.com/docs/schematypes.html#mixed
...这将很快解释问题。
{
Options: [ new Schema ({ _id: mongoose.Types.ObjectId(),value: [String], Name: String } })]
}