如何使用 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,

我的期望: 我如何设计架构来解决以下情况

  1. 当我搜索诺基亚时,它应该会显示带费率的诺基亚手机型号。
  2. 当我用 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"
                        }
                        ]
            }
                   ]
}

您还可以根据需要更改架构

谢谢