Saya menemukan perilaku mongo yang aneh dan saya ingin menjelaskannya sedikit ...
Permintaan saya sesederhana itu: Saya ingin mendapatkan satu ukuran dokumen dalam koleksi. Saya menemukan dua solusi yang mungkin:
- Object.bsonsize - beberapa metode javascript yang harus mengembalikan ukuran dalam byte
- db.collection.stats () - di mana ada baris 'avgObjSize' yang menghasilkan beberapa tampilan ukuran "agregat" (rata-rata) pada data. Ini hanya mewakili ukuran rata-rata dari satu dokumen.
Saat saya membuat koleksi pengujian dengan hanya satu dokumen, kedua fungsi mengembalikan nilai yang berbeda. Bagaimana itu mungkin?
Apakah ada metode lain untuk mendapatkan ukuran dokumen mongo?
Di sini, saya memberikan beberapa kode yang saya uji:
Saya membuat 'test' database baru dan memasukkan dokumen sederhana dengan hanya satu atribut: type: "auto"
db.test.insert({type:"auto"})
keluaran dari pemanggilan fungsi 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
}
keluaran dari panggilan fungsi bsonsize: Object.bsonsize (db.test.find ({test: "auto"}))
481