Рассмотрим следующую структуру данных в коллекции:
{
_id : ObjectId("4ec6c015482c4c8302000001"),
uid : ObjectId("4ec6c015482c4c8302003233") //reference to user's Object ID
someValue : some json object,
}
Указанная коллекция будет очищена от uid.
Между этими двумя ситуациями, что было бы более производительным для чтения?
Вариант А)
Сохранить Ссылки на каждую структуру данных в объекте users и выполнить этот запрос:
db.collection.find({_id: {$in: ids}}
Вариант B)
Создайте индекс для uid и сделайте запрос следующим образом:
db.collection.find({uid : ObjectId("4ec6c015482c4c8302003233")})
каждый набор результатов будет включать 0-20 структур данных из коллекции.
Суммировано: Будет ли быстрее найти () 20 конкретных идентификаторов или все объекты, которые соответствуют индексируемому значению идентификатора (результирующий набор также равен 20)