Размер закрытой коллекции MongoDB не подходит?
У меня есть ограниченная коллекция. Когда я вызываю stats(), я получаю следующий вывод:
/* 0 */
{
"ns" : "log_db.access_logs",
"count" : 42088,
"size" : 13602632,
"avgObjSize" : 323,
"storageSize" : 100003840,
"numExtents" : 1,
"nindexes" : 2,
"lastExtentSize" : 100003840,
"paddingFactor" : 1,
"systemFlags" : 1,
"userFlags" : 0,
"totalIndexSize" : 3932656,
"indexSizes" : {
"_id_" : 1389920,
"apikey_1_ts_1" : 2542736
},
"capped" : true,
"max" : NumberLong(9223372036854775807),
"ok" : 1
}
Я не знаю, что показывает параметр 'max'. Я создал эту коллекцию, используя конструкцию db.runCommand('convertToCapped' ...), и установил для параметра 'size' значение 100 миллионов. Но здесь нет упоминания об этом (размер)
Может ли кто-нибудь объяснить значение поля 'max' здесь, а также как найти правильный размер закрытой коллекции.
1 ответ
У меня был точный вопрос один раз, так как его не было в документации, и это ответ, который я получил от 10gen (MongoDB Inc), служащий закрытой коллекции mongodb не использует все доступное пространство:
Свойство max является (необязательным) максимальным количеством документов, разрешенных в ограниченной коллекции (см. Db.createCollection()). Если вы не укажете максимальное значение, для него будет установлено значение MAXINT (в вашем примере это максимальное положительное значение для подписанного Int64). Поскольку пространство для ограниченных коллекций всегда предварительно выделяется, ограничение размера имеет приоритет над максимальным количеством документов.