mongoose嵌套Schema问题
我发现如果mongoose的Schema中一个属性为Object,该属性内又定义了各种SchemaType,那么通过该Schema创建的model在插入数据时会存在错误。
const Schema = mongoose.Schema({
userId: {
type: String,
require: true
},
shopId:String,
shopName:String,
isCanceled: {
type: Boolean,
default: false
},
address:{
city: String,
department: String,
houseNumber: String,
name: String,
phone: String
},
products: [{
product: {
name: String,
imgUrl: String,
sales: Number,
price: Number,
tabs: [String]
},
orderSales:Number
}]
}, {
timestamps: true
})
如上图的address和product,当在插入数据时,在mongoose数据库中显示的数据如下图:
我通过定义子Schema的方式,可以解决数据无法正确显示的问题,但是插入数据会多出一个_id。
定义子Schema方式如下:
const addressSchema = mongoose.Schema({
city: String,
department: String,
houseNumber: String,
name: String,
phone: String
})
const productSchema = mongoose.Schema({
name: String,
imgUrl: String,
sales: Number,
price: Number,
tabs: [String]
})
const Schema = mongoose.Schema({
userId: {
type: String,
require: true
},
shopId:String,
shopName:String,
isCanceled: {
type: Boolean,
default: false
},
address:{
type: addressSchema
},
products: [{
product: {
type: productSchema
},
orderSales:Number
}]
}, {
timestamps: true
})
子Schema中未定义_id,为何此时会多出一个_id?
然而,在老师视频中依靠嵌套的方法可以正确插入数据,这个问题是由什么导致?如果不使用子Schema的方式,如何解决该问题?
9
收起
正在回答 回答被采纳积分+1
1回答
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星