Mongo'nun garip bir davranışıyla karşılaştım ve biraz açıklığa kavuşturmak istiyorum ...
İsteğim şu kadar basit: Koleksiyonda tek bir belge boyutu almak istiyorum. İki olası çözüm buldum:
- Object.bsonsize - bayt cinsinden bir boyut döndürmesi gereken bazı javascript yöntemi
- db.collection.stats () - veriler üzerinde bazı "toplu" (ortalama) boyut görünümü üreten bir 'avgObjSize' satırı olduğu yerde. Tek bir belgenin ortalama boyutunu temsil eder.
Yalnızca bir belgeyle test koleksiyonu oluşturduğumda, her iki işlev de farklı değerler döndürüyor. Bu nasıl mümkün olaiblir?
Bir mongo belgesinin boyutunu elde etmenin başka bir yöntemi var mı?
Burada test yaptığım bazı kodları sağlıyorum:
Yeni veritabanı 'test' oluşturdum ve yalnızca bir niteliğe sahip basit bir belge girdim: type: "auto"
db.test.insert({type:"auto"})
istatistik () işlev çağrısından çıktı: 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
}
bsonsize işlev çağrısından çıktı: Object.bsonsize (db.test.find ({test: "auto"}))
481