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