是最佳实践吗? mongodb如何知道期望一个数组,并且对这个数组的查询会有效?
例如在该模式下
const vancouverSchema = new mongoose.Schema(
{
jobs: {
retail: {
type:Array
},
general_labour: {
type:Array
},
sales: {
type:Array
},
government: {
}
},
}
)
最好简单地做
retail: [{
title: {
type: String
},
description: {
type:String
},
pay: {
type:Number
}
}]
VS
retail: {
type:Array
},
尝试为城市及其各种类别创建一个简单的方案,而这部分设计没有太多的认知开销。
这是温哥华模式的一个示例,但是我将拥有15-20 ++城市模式,只需复制和粘贴即可动态创建馆藏,并且由于要跟踪的内容太多,这似乎是最简单的方法做吧。我知道,复制粘贴很不好,但是..不允许用于高级设计吗?而不是尝试一些聪明的方法来引入错误,谢谢大家。
const vancouverSchema = new mongoose.Schema(
{
jobs: {
retail: [
{
title: {
type: String
},
description: {
type: String
},
pay: {
type: Number
},
contact_email: {
type: String
}
},
{
timestamps: true
}
],
general_labour: {
type:Array
},
sales: {
type:Array
},
government: {
}
},
for_sale: {
free: {
type:Array
},
antiques: {
type:Array
},
appliances: {
type:Array
}
},
housing:{
apt: {
type:Array
},
office_commerical:{
type:Array
}
}
}
)
答案 0 :(得分:1)
您可以通过以下方式进行:
const vancouverSchema = new mongoose.Schema({
jobs: {
retail: [
{
type: mongoose.Schema.Types.ObjectId,
ref: 'newSchemaCreated'
}
],
general_labour: {
type: [Number]
},
sales: {
type: [Boolean]
},
government: {}
}
})
如果您创建另一个架构,则对于零售来说会更好。而且,如果您还有其他类似零售物业的内容,也应该这样做。因为把东西嵌套太多永远是不好的。