Encontrei um comportamento estranho de mongo e gostaria de esclarecê-lo um pouco ...
Meu pedido é simples assim: gostaria de obter um tamanho de documento único na coleção. Encontrei duas soluções possíveis:
- Object.bsonsize - algum método javascript que deve retornar um tamanho em bytes
- db.collection.stats () - onde há uma linha 'avgObjSize' que produz uma visão do tamanho "agregado" (médio) nos dados. Ele simplesmente representa o tamanho médio de um único documento.
Quando eu crio uma coleção de teste com apenas um documento, ambas as funções retornam valores diferentes. Como isso é possível?
Existe algum outro método para obter o tamanho de um documento mongo?
Aqui, eu forneço alguns códigos em que realizo testes:
Criei um novo banco de dados 'teste' e entrada documento simples com apenas um atributo: tipo: "auto"
db.test.insert({type:"auto"})
saída da chamada de função 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
}
saída da chamada de função bsonsize: Object.bsonsize (db.test.find ({test: "auto"}))
481