Я пытаюсь сохранить список ObjectIds в документе как поле массива.
Я понимаю, что у Mongo DB есть ограничение на размер 4 МБ для отдельных документов. Поэтому, учитывая длину ObjectId составляет 12 байт, документ должен иметь возможность обрабатывать более 300 000 записей в одном поле массива. (Сообщите мне, если расчет выключен).
Если количество записей в массиве приближается к этому пределу, какую производительность я могу ожидать? Особенно, когда поле индексируется? Какие-либо проблемы с памятью?
Типичные запросы будут выглядеть следующим образом:
Запрос одним значением
db.myCollection.find(
{
myObjectIds: ObjectId('47cc67093475061e3d95369d')
}
);
Запрос несколькими значениями
db.myCollection.find(
{
myObjectIds: {$in: [ObjectId('47cc67093475061e3d95369d'), ...]}
}
);
Добавить новое значение для нескольких документов
db.myCollection.update(
{
_id: {$in: [ObjectId('56cc67093475061e3d95369d'), ...]}
},
{
$addToSet: {myObjectIds: ObjectId('69cc67093475061e3d95369d')}
}
);