J'ai rencontré un comportement étrange de mongo et je voudrais le clarifier un peu ...
Ma demande est aussi simple que ça: je voudrais avoir une taille de document unique en collection. J'ai trouvé deux solutions possibles:
- Object.bsonsize - une méthode javascript qui devrait renvoyer une taille en octets
- db.collection.stats () - où il y a une ligne 'avgObjSize' qui produit une vue de taille "agrégée" (moyenne) sur les données. Il représente simplement la taille moyenne d'un seul document.
Lorsque je crée une collection de test avec un seul document, les deux fonctions renvoient des valeurs différentes. Comment est-ce possible?
Existe-t-il une autre méthode pour obtenir la taille d'un document mongo?
Ici, je fournis du code sur lequel j'effectue des tests:
J'ai créé une nouvelle base de données 'test' et entré un document simple avec un seul attribut: type: "auto"
db.test.insert({type:"auto"})
sortie de l'appel de fonction stats (): db.test.stats () :
{ "ns" : "test.test", "count" : 1, "size" : 40, "avgObjSize" : 40, "storageSize" : 4096, "numExtents" : 1, "nindexes" : 1, "lastExtentSize" : 4096, "paddingFactor" : 1, "systemFlags" : 1, "userFlags" : 0, "totalIndexSize" : 8176, "indexSizes" : { "_id_" : 8176 }, "ok" : 1
}
sortie de l'appel de fonction bsonsize: Object.bsonsize (db.test.find ({test: "auto"}))
481