2015-11-23 6 views
1

Wat - минимальный размер документа в MongoDb.минимальный размер документа в MongoDb

Если я вставляю следующие Json {"_id",1234} или {"_id":NumberLong(1),"g":"1383,5,2000,1"} или {"_id":ObjectId("5652e26c1a8014b040aacc54"),"v" : "3,123"}.

Все три документа занимают 48 байт. Минимальный размер документа составляет 48 байтов?

ответ

1

MongoDB поддерживает динамическую схему. I.e документы внутри одной коллекции могут иметь другую схему.

Таким образом, в MongoDB отсутствует фиксированный минимальный размер документа. Для определения размера документа в MongoDB выполнить следующий фрагмент кода

db.test.stats()

Ниже приводится ответ статистики() метод

{ 
    "ns" : "pcat.test", 
    "count" : 2, 
    "size" : 736, 
    "avgObjSize" : 368, 
    "numExtents" : 1, 
    "storageSize" : 8192, 
    "lastExtentSize" : 8192.0000000000000000, 
    "paddingFactor" : 1.0000000000000000, 
    "paddingFactorNote" : "paddingFactor is unused and unmaintained in 3.0. It remains hard coded to 1.0 for compatibility only.", 
    "userFlags" : 1, 
    "capped" : false, 
    "nindexes" : 2, 
    "indexDetails" : {}, 
    "totalIndexSize" : 16352, 
    "indexSizes" : { 
     "_id_" : 8176, 
     "accounts.platform_id_1_accounts.id_1" : 8176 
    }, 
    "ok" : 1.0000000000000000 
} 

Из выше выходной ключ avgObjSize состоит из среднего размера документа (в байтах) в коллекции.

Alternative вы можете определить размер отдельного документа в коллекции, используя следующий фрагмент кода

Object.bsonsize(db.collection.find({ "_id" :1})) 

Но есть ограничение на максимальный размер документа в MongoDB.

Максимальный размер документа BSON составляет 16 мегабайт. Максимальный размер документа гарантирует, что один документ не может использовать избыточное количество ОЗУ или, во время передачи, чрезмерную пропускную способность.

+0

Но если я смотрю на avgObjSize в db.collection.stats() с JSON '{ "_id", 1234}', что так же, как я смотрю на avgObjSize в db.collection2.stats() с json '{" _id ": NumberLong (1)," g ":" 1383,5,2000,1 "}'. Оба являются 48 байтами. –

Смежные вопросы