Я бы предложил переместить продукты в отдельную коллекцию.
Схемы данных MongoDB являются лучшими, если они основаны на требованиях использования. В этом случае пользователи, просматривающие продукты, очень редко будут интересоваться всеми продуктами, которые продает другой пользователь. Обычно они будут интересоваться продуктами, которые соответствуют критериям поиска о цене и описании товара или названии позиции.
Итак, представьте себе поиск самых последних опубликованных материалов с учетом предложенной схемы данных. Ваш запрос должен будет искать в каждом массиве user
product
вложенных документах и проверить timePosted
. Принимая во внимание, что коллекция product
может легко иметь индекс на timePosted
и не требует необходимости прикосновения (user
и каждого user
других документов products
).
Также важно рассмотреть вариант использования одной страницы продукта, а также указать отдельную коллекцию product
.
Даже если вам не нужно, чтобы показать product
сек, что конкретный user
отвечал, это не будет трудно в product
коллекции для поиска по user_id
.
@costa Покупатели могут видеть все товары (чтобы их можно было купить). Я просто не привык вкладывать все в один документ, и я беспокоюсь о последствиях, которые он может привести. Что, если продавец решит, что хочет продать 5000 предметов? Может ли MongoDB справиться с этим? – alexandernst
http://docs.mongodb.org/manual/reference/limits/ – costa
Я называю это дубликат. Вопрос о встраивании и задании задавался по-разному. – jcollum