2012-01-07 14 views

Odpowiedz

7

Dzięki temu można uzyskać teoretyczny rozmiar dokumentu zgodnie z opisem w komentarzu (BSON.serialize(Model.first.as_document).size).

Należy jednak zauważyć, że nie może to być rzeczywisty rozmiar obiektu "na dysku". MongoDB automatycznie dodaje bufor do nowych dokumentów, aby umożliwić im rozwój w miejscu. Jeśli chodzi o uzyskanie rzeczywistego rozmiaru na dysku dla jednego konkretnego dokumentu, nie sądzę, aby było to możliwe. Można uzyskać średni bufor za pomocą db.collection_name.stats().

+1

nie wydają się działać z Mongoid 3.x więcej. –

0

Działa to dla Mongoid 3.1.0:

model.as_document.__bson_dump__.size 
-1

Dla mongoid 3.x można wykorzystać Moped :: BSON :: Dokument

na przykład:

your_document = Model.find(id) 
# get size 
size = Moped::BSON::Document.serialize(your_document.as_document).size 
5

rozwiązań dla 2015 i mongoid (4.0.2):

model_instance.as_document.to_bson.size 
0

W orking dla MongoID 5.x. Z powłoką Mongo i MongoID jest prosta:

  1. Podnieś swój identyfikator obiektu

    ModelName.first.id # then copy your_id

  2. konsola Run Mongo

    mongo

  3. Uzyskaj rozmiar w bajtach dokument

    Object.bsonsize(db.modelname.find({"_id": ObjectId("your_id")}))

Powiązane problemy