2015-12-15 6 views
0

Быстрый вопрос, пожалуйста, будьте уверены.Mongodb Размер документа

У меня есть следующий пример документа в моей коллекции гость

"_id" : "JM15061985", 
    "last_name" : "Michel", 
    "first_name" : "Justine", 
    "gender" : "Female", 
    "title" : "Mme", 
    "telephone" : 3375, 
    "mail" : "[email protected]", 
    "language" : "French", 
    "birthday" : ISODate("1985-06-14T22:00:00Z"), 
    "status" : "VIP", 
    "company" : "Test", 
    "address" : [ 
     { 
      "street" : "45 Avenue de Paris", 
      "city" : "Nice", 
      "zip_code" : "06072", 
      "country" : "France" 
     }, 
     { 
      "street" : "12 square xvy", 
      "city" : "Toulon", 
      "zip_code" : "83072", 
      "country" : "France" 
     }, 
] 

Я знаю, что один документ Ins MongoDB не может превышать 16Mb. Итак, мои основные вопросы: Что представляет собой 16Mb? (например, может быть?) В моем примере каждый адрес рассматривается как документ или это только один документ?

+1

В вашем примере это не каждый адрес, а вся вещь рассматривается как один документ, а адрес - это только одно поле типа массива. Что касается размера 16 МБ, обратитесь к [link] (https://docs.mongodb.org/v3.0/reference/limits/). –

ответ

1

16MB - максимальный размер BSON-document, который представляет ваш документ. Сюда входят вложенные объекты, например, ваш пример address, а также имена ключей (а не только значения).

Есть также некоторые накладные расходы на каждое свойство документа, как объяснено here.

Чтобы проверить BSON размера документа для конкретного объекта JS, и если вы будете использовать Node.js, вы можете использовать модуль bson:

var BSON = new (require('bson')).BSONPure.BSON(); 
var bson = BSON.serialize(obj, false, true, false); 

console.log('bson size', bson.length); 

Там должен быть аналогичными решениями для других языков программирования.

+0

Вы, кажется, предполагаете, что OP использует узел. Который, по всей вероятности, он этого не делает. –

+0

@DmytroShevchenko справедливо, я отредактирую свой ответ, чтобы отразить это :-) – robertklep

+0

Существует ли эта функция для php? –

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