Я пытаюсь сохранить список ObjectId в документе в виде поля массива.
Я понимаю, что 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')}
}
);