Я хочу получить некоторые данные из MongoDB, но я не уверен, как это сделать эффективно. Возможно, структура моей коллекции / документа не идеальна, и мне нужно хранить ее по-другому. Любой совет будет оценен ..
У меня есть две коллекции - объекты и виды объектов
Предметы
{
"_id" : ObjectId( "4f182ac3369a2b2603010000" ),
"name" : "Object name",
"project_id" : "4f182a76369a2b2903000000"
}
Виды объектов
{
"_id" : ObjectId( "4f182ac3369a2b2603010000" ),
"2012" : {
"r" : 8,
"t" : 16,
"u" : 10,
}
}
Я хочу получить 2012.r из коллекции 'Object views' для всех объектов, принадлежащих конкретному проекту.
Вот мои идеи о том, как это сделать:
- Иметь запрос на поиск, который возвращает все документы из объекта
коллекция просмотров, соответствующая полю _id. Мне это не кажется
эффективный или аккуратный способ ведения дел (представьте, если бы было 2000
объекты).
- Добавьте поле project_id ко всем документам вида объекта, а затем выполните запрос поиска, чтобы выбрать все документы, соответствующие идентификатору проекта. Является ли это неодобрительным / эффективным для выбора нескольких документов (их может быть всего 2 или целых 2000)?
- Создайте коллекцию специально для этой проблемы. Он будет содержать документ для каждого проекта, где каждый документ определяет все экземпляры объектов, принадлежащих этому проекту, и значения 2012 года. Затем выполните поиск, чтобы выбрать один документ.
Будем благодарны за любые мысли / советы или альтернативные решения!