2015-12-22 4 views
1

У меня есть мобильный список с моделями и ценами. Я хочу создать схему для этого. Я новичок в mongodb и mongoose. Кто-нибудь мне помогает, я добавил свои требования.Как создать схему с использованием 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. Когда я ищу нокиа он должен показать Nokia модель мобильного телефона с частотой.
  2. Когда я ищу Nokia с Nokia Lumia, результат должен показать совпадающая условия

Это моя полная схема

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

Вы можете сделать две коллекции для магазина и категории

и сделать схему вложенным образом

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] 
}); 

Чтобы понять вложенную схему в мангусте вы можете посетить этот link

Я привожу пример, чтобы понять более-

Кулака все, что мы должны сохранить название магазина

{ 
    "_id" : ObjectId("567a8f004cb6178545bac89c"), 
    "Email" : "[email protected]", 
    "Storename" : "Dineshaws", 
    "Type" : "XYZ", 
    "Categories" : [] 
} 

Когда мы спасем одной категории, то она будет идти в обе галерею- категории и хранить коллекцию

магазин -

{ 
    "_id" : ObjectId("567a8f004cb6178545bac89c"), 
    "Email" : "[email protected]", 
    "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" : "[email protected]", 
    "Storename" : "Dineshaws", 
    "Type" : "XYZ", 
    "Categories" : [ 
      { 
       "_id" : ObjectId("567a9be04cb6178545bac89d"), 
       "name" : "nokia", 
       "subcategories" : [{ 
          "name" : "Nokia Lumia", 
          "model":"Nokia Lumia 730 -7,000" 
         } 
         ] 
      } 
        ] 
} 

Вы также можете изменить схему согласно вашему требованию

Благодаря

+0

вы можете пожалуйста добавить несколько примеров использовать мои данные данные –

+0

эй @komal пожалуйста, проверьте ответ сейчас, я обновил его – Dineshaws

+0

, если я хочу добавить данные в подкатегории –

Смежные вопросы