Я пытаюсь сохранить список 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')}
}
);