这里我将介绍一些保存到模式中JSON对象。Article Schema design:
const Article = new Schema({
postBy: {
type: mongoose.Schema.Types.ObjectId,
ref: "User"
},
contents: {
type: Map,
of: mongoose.Schema.Types.ObjectId,
ref: "Content"
}
})
因为在Article
中,每个文档里面的语言量是未知的,所以不能设置为:
contents: {
en: [{
type: mongoose.Schema.Types.ObjectId,
ref: "Content"
}],
jp: [{
type: mongoose.Schema.Types.ObjectId,
ref: "Content"
}],
...
}
如果我想将记录保存到Article
,将返回错误消息:
message: "Articles validation failed: contents.en: Cast to ObjectId failed for value \"[ 620e18b647a8f541892f3046, 620e18b847a8f541892f3048 ]\" (type Array) at path \"contents.$*\", contents.jp: Cast to ObjectId failed for value \"[ 620e18b847a8f541892f304a, 620e18b847a8f541892f304c ]\" (type Array) at path \"contents.$*\""
name: "ValidationError"
型
有没有人可以帮助设计一个可以支持未知语言的模式,并且语言键是动态的,然后可以将引用objectId保存到content[keys]
中,以建立Article
模式和Content
模式之间的关系?
2条答案
按热度按时间q9yhzks01#
你可以试试这个:
nmpmafwu2#
这是我能想到的创建任意对象数组的方法