2016-07-19 3 views
0

Я новичок в MongoDB. В нашем приложении размер данных для каждой таблицы довольно большой, поэтому я решил разделить их на разные коллекции, даже если он такой же. Единственное отличие - это «id» между каждым документом (документы в одной коллекции находятся под одной категорией) во всех коллекциях. Поэтому мы решили вставить данные в коллекции номеров, и в каждой коллекции будет определенное количество документов. в настоящее время у меня есть 10 коллекций одинаковых данных документа. Мое требование: 1) получить данные из всех коллекций в одном запросе для отображения на главной странице приложения. 2) Мне нужно получить данные, используя сортировку и фильтрацию перед извлечением.Чтение подобных данных из более чем двух коллекций в mongoDB

Я прошел через некоторые сообщения в stackoverflow, говоря, что используйте Mongo-3.2 $ lookup агрегация для этого требования. но я подозреваю, что если я использую $ lookup для 10 коллекций, может возникнуть проблема с производительностью и слишком сложный запрос. , так как я разделил один и тот же тип данных на количество коллекций (каждая коллекция будет иметь документы, которые входят в одну категорию, например, у меня есть 10 категорий, поэтому мне нужно использовать 10 коллекций).

Может ли любой орган предложить мне, подходит ли мой подход?

+0

Если причина разделения коллекций из-за большого размера данных, вы должны использовать [sharding] (https://docs.mongodb.com/manual/sharding/) вместо распределения нагрузки/размера. –

ответ

0

Если у вас есть много данных, как вы можете отобразить их все на веб-странице?

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

Основываясь на неопределенном описании, это решение, вы должны проверить official doc.

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

Надеюсь, это поможет.

0

Вы должны хранить все 10 типов данных в 1 коллекции, а не 10. Не делайте вещи более сложными, чем они должны быть.

+0

Да, это верно, но данные будут огромными, для одной коллекции она будет огромной. –

+0

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

+0

Вы можете посмотреть http://stackoverflow.com/questions/38455609/getting-the-required-documents-from-both-the-collections-in-one-query-in-mongodb/38456140?noredirect=1# comment64318284_38456140 Это соответствует моему требованию –

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