2016-09-28 3 views
0

Я хотел бы создать базу данных электронной коммерции, где у меня есть продукты и категории для продуктов с использованием Mongodb и Mongoose. Я имею в виду наличие двух коллекций, один для продуктов и один для категорий. После копания в Интернете, я думаю, что категория должна быть такой:Дизайн модели продукта Mongoose?

var categorySchema = { 
    _id: { type: String }, 
    parent: { 
    type: String, 
    ref: 'Category' 
    }, 
    ancestors: [{ 
    type: String, 
    ref: 'Category' 
    }] 
}; 

Я хотел бы быть в состоянии найти все продукты по категориям. Например, «найти все телефоны». Однако категории могут быть переименованы, обновлены и т. Д. Каков наилучший способ реализации коллекции продуктов? В SQL продукт будет содержать внешний ключ для категории.

Образец кода вставки и нахождения документа будет очень признателен!

ответ

0

Почему бы не сохранить его простым и сделать что-то вроде следующего?

var product_Schema = { 
    phones:[{ 
      price:Number, 
      Name:String, 
     }], 
     TV:[{ 
      price:Number, 
      Name:String 
     }] 
}; 

Затем, используя выступы, вы можете легко вернуть продукты для данного ключа. Например:

db.collection.find({},{TV:1,_id:0},function(err,data){ 
    if (!err) {console.log(data)} 
}) 

Конечно правильная конструкция схемы будет зависеть от того, как вы планируете запрашивая/вставки/обновления данных, но с Монго вещи простыми, как правило, окупается.

+0

Две причины: во-первых, существует иерархия документов категории. Второй продукт имеет сложную структуру и может менять категории. – user3768533

+0

Все это звучит как релевантная информация при определении схемы. Возможно, вы можете обновить вопрос с дополнительной информацией и примером всех полей, хранящихся на уровне категории, и всех полей, хранящихся на уровне продукта. Кроме того, я хотел бы упомянуть, как часто вы планируете менять названия категорий, а также как часто вы планируете запрашивать, чтобы получить список продуктов, принадлежащих к категории. Может ли продукт принадлежать нескольким категориям? Без дополнительной информации любой ответ был бы очень обобщен. – user2263572

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