【发布时间】:2020-06-24 01:45:54
【问题描述】:
在数组内创建对象以简单地定义数组内的对象时的最佳做法是什么? 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
}
}
}
)
【问题讨论】:
-
你能给我们举一个
vancouverSchema对象的例子吗? -
我想我给了你所要求的,不确定。
-
对不起,我应该更清楚。你能告诉我们你将输入
vancouverSchema的对象/JSON吗? -
基本上这个想法是 vancouverSchema 将是一个集合,然后我会为工作提供一些东西,例如,带有标题等。这个想法是创建单独的城市,然后将帖子推送到那个城市,分开通过将帖子保存在数组中来确定帖子的类别。
-
所以请向我们展示集合中的文档是什么样的。如果您不告诉我们成分,我们将无法为您提供食谱。
标签: node.js reactjs mongodb express mongoose