MongoDB динамические значения - PullRequest
1 голос
/ 28 февраля 2012

Итак, возможно, я понял что-то не так, потому что я из мира SQL: у меня есть коллекция с товарами:

_id: "0234weasq43rq",
title: "Panasonic",
descr: "blah blah",
price: 132,
specifications {
   weight: 135,
   color: "black",
   type: "LCD",
   diagonal: 50
}

_id: "0234weasq43rq",
title: "Samsung Galaxy Tab",
descr: "blah blah",
price: 132,
specifications {
   weight: 135,
   color: "white",
   standard: "GSM",
   wifi: "Yes"
}

Могу ли я иметь разные спецификации для разных категорий товаров (например,телефоны и компьютеры)?Есть ли проблемы с поиском товаров по запросу типа goods.find(specifications { diagonal: 50 }), если не все товары имеют "диагональную" спецификацию?

Спасибо!

Ответы [ 2 ]

2 голосов
/ 28 февраля 2012

Да, ваши документы, даже в одной коллекции, могут иметь совершенно разные структуры.В вашем примере запрос вернул бы только товары с диагональю = 50 и пропустил бы все документы, для которых не определена диагональ (или которые имеют определенную, но не 50, очевидно)

1 голос
/ 28 февраля 2012

Могу ли я сохранить различные спецификации для разных категорий товаров (например, телефоны и компьютеры)?

В одной коллекции могут быть документы с разными структурами.Таким образом, для вашего случая вы можете сохранить различные спецификации для разных категорий товаров.

Есть ли проблемы с поиском товаров с помощью запроса, например goods.find (технические характеристики {diagonal: 50}), если не всетовар имеет "диагональную" спецификацию?

Нет, абсолютно.Одна вещь, которая может быть полезна для вас, - это редкие индексы для полей, которые представлены не во всех документах (например, диагональное поле).Этот индекс не будет включать документы, которые не имеют этого поля.

...