我有手机列表,包含型号和费率。我想为此创建一个架构。我是mongodb和mongoose的新手。任何人帮助我,我已经添加了我的要求。
Categories :
nokia
sub Categories :Nokia Lumia 730 -7,000,
Nokia 225 -5,000,
Nokia Lumia 1020 -6,000,
Nokia Lumia 530 -8,0000
Samsung Galaxy A7:
Samsung Galaxy A7 -10,000,
Samsung Galaxy A3 -12,000,
Samsung Galaxy One5 -5,000,
Samsung Galaxy S5 Neo -6,000
HTC One M9s:
HTC One M9s -9,000,
HTC Desire 728G -12,000,
HTC Desire 526 -4,000,
我的期望: 如何设计模式来解决以下条件
这是我的完整架构
var ShopSchema = new Schema({
Email: {
type: String,
default: '',
trim: true,
},
Storename: {
type: String,
default: '',
trim: true
},
Type: {
type: String,
default: '',
trim: true
},
Categories: {
type: String,
default: '',
trim: true
}
});
答案 0 :(得分:0)
您可以为商店和类别制作两个不同的收藏品
以嵌套方式制作架构
{
"_id" : ObjectId("567a8f004cb6178545bac89c"),
"Email" : "dineshaws@hotmail.com",
"Storename" : "Dineshaws",
"Type" : "XYZ",
"Categories" : []
}
要了解mongoose中的嵌套架构,您可以访问此link
我举一个例子来了解更多 -
我们要保存商店名称的所有拳头
{
"_id" : ObjectId("567a8f004cb6178545bac89c"),
"Email" : "dineshaws@hotmail.com",
"Storename" : "Dineshaws",
"Type" : "XYZ",
"Categories" : [
{
"_id" : ObjectId("567a9be04cb6178545bac89d"),
"name" : "nokia",
"subcategories" : []
}
]
}
当我们保存单个类别时,它将进入两个集合类别并存储
店铺收藏 -
{
"_id" : ObjectId("567a9be04cb6178545bac89d"),
"name" : "nokia",
"subcategories" : []
}
类别集合 -
{
"_id" : ObjectId("567a9be04cb6178545bac89d"),
"name" : "nokia",
"subcategories" : [
{
"name" : "Nokia Lumia",
"model":"Nokia Lumia 730 -7,000"
}
]
}
现在,如果我们要插入子类别,那么它将作为子文档进入两个集合
类别集合将如下所示 -
{
"_id" : ObjectId("567a8f004cb6178545bac89c"),
"Email" : "dineshaws@hotmail.com",
"Storename" : "Dineshaws",
"Type" : "XYZ",
"Categories" : [
{
"_id" : ObjectId("567a9be04cb6178545bac89d"),
"name" : "nokia",
"subcategories" : [{
"name" : "Nokia Lumia",
"model":"Nokia Lumia 730 -7,000"
}
]
}
]
}
商店收藏将如下所示 -
{{1}}
您还可以根据需要更改架构
由于