如何使用 mongodb(mongoose 模式) 创建模式?
How to create Schema using mongodb(mongoose schema)?
我有包含型号和费率的手机列表。我想为此创建一个模式。我是 mongodb 和猫鼬的新手。谁帮帮我,我已经添加了我的要求。
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,
我的期望:
我如何设计架构来解决以下情况
- 当我搜索诺基亚时,它应该会显示带费率的诺基亚手机型号。
- 当我用 Nokia Lumia 搜索 nokia 时,结果应该显示匹配的条件
这是我的完整架构
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
}
});
您可以为商店和类别制作两个不同的collection
并以嵌套方式制作模式
var Categories = new Schema({
name : String
, subcategories : {
name : String,
model : String
}
});
var ShopSchema = new Schema({
Email: {
type: String,
default: '',
trim: true,
},
Storename: {
type: String,
default: '',
trim: true
},
Type: {
type: String,
default: '',
trim: true
},
Categories : [Categories]
});
要了解 mongoose 中的嵌套模式,您可以访问此 link
我举个例子来加深理解-
首先我们要保存店名
{
"_id" : ObjectId("567a8f004cb6178545bac89c"),
"Email" : "dineshaws@hotmail.com",
"Storename" : "Dineshaws",
"Type" : "XYZ",
"Categories" : []
}
当我们保存单个类别时,它将同时进入 collection- 类别和商店
店铺 collection -
{
"_id" : ObjectId("567a8f004cb6178545bac89c"),
"Email" : "dineshaws@hotmail.com",
"Storename" : "Dineshaws",
"Type" : "XYZ",
"Categories" : [
{
"_id" : ObjectId("567a9be04cb6178545bac89d"),
"name" : "nokia",
"subcategories" : []
}
]
}
类别collection -
{
"_id" : ObjectId("567a9be04cb6178545bac89d"),
"name" : "nokia",
"subcategories" : []
}
现在,如果我们想插入子类别,它会作为子文档进入 collection
类别 collection 将如下所示 -
{
"_id" : ObjectId("567a9be04cb6178545bac89d"),
"name" : "nokia",
"subcategories" : [
{
"name" : "Nokia Lumia",
"model":"Nokia Lumia 730 -7,000"
}
]
}
店铺 collection 会是这样的-
{
"_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"
}
]
}
]
}
您还可以根据需要更改架构
谢谢
我有包含型号和费率的手机列表。我想为此创建一个模式。我是 mongodb 和猫鼬的新手。谁帮帮我,我已经添加了我的要求。
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,
我的期望: 我如何设计架构来解决以下情况
- 当我搜索诺基亚时,它应该会显示带费率的诺基亚手机型号。
- 当我用 Nokia Lumia 搜索 nokia 时,结果应该显示匹配的条件
这是我的完整架构
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
}
});
您可以为商店和类别制作两个不同的collection
并以嵌套方式制作模式
var Categories = new Schema({
name : String
, subcategories : {
name : String,
model : String
}
});
var ShopSchema = new Schema({
Email: {
type: String,
default: '',
trim: true,
},
Storename: {
type: String,
default: '',
trim: true
},
Type: {
type: String,
default: '',
trim: true
},
Categories : [Categories]
});
要了解 mongoose 中的嵌套模式,您可以访问此 link
我举个例子来加深理解-
首先我们要保存店名
{
"_id" : ObjectId("567a8f004cb6178545bac89c"),
"Email" : "dineshaws@hotmail.com",
"Storename" : "Dineshaws",
"Type" : "XYZ",
"Categories" : []
}
当我们保存单个类别时,它将同时进入 collection- 类别和商店
店铺 collection -
{
"_id" : ObjectId("567a8f004cb6178545bac89c"),
"Email" : "dineshaws@hotmail.com",
"Storename" : "Dineshaws",
"Type" : "XYZ",
"Categories" : [
{
"_id" : ObjectId("567a9be04cb6178545bac89d"),
"name" : "nokia",
"subcategories" : []
}
]
}
类别collection -
{
"_id" : ObjectId("567a9be04cb6178545bac89d"),
"name" : "nokia",
"subcategories" : []
}
现在,如果我们想插入子类别,它会作为子文档进入 collection
类别 collection 将如下所示 -
{
"_id" : ObjectId("567a9be04cb6178545bac89d"),
"name" : "nokia",
"subcategories" : [
{
"name" : "Nokia Lumia",
"model":"Nokia Lumia 730 -7,000"
}
]
}
店铺 collection 会是这样的-
{
"_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"
}
]
}
]
}
您还可以根据需要更改架构
谢谢