Gibt es eine Methode, um die Größe einer bestimmten Instanz eines Modells / Dokuments in einer MongoDB mit Mongoid zu bestimmen?
Sie können also die theoretische Größe des Dokuments erhalten, wie Sie es in Ihrem Kommentar ( BSON.serialize(Model.first.as_document).size
) dargestellt haben.
Es sollte jedoch beachtet werden, dass dies möglicherweise nicht die tatsächliche Größe des Objekts "auf der Festplatte" ist. MongoDB fügt neuen Dokumenten automatisch einen Puffer hinzu, damit sie direkt anwachsen können. Wenn es darum geht, die tatsächliche Größe auf der Festplatte für ein bestimmtes Dokument zu erhalten, glaube ich nicht, dass dies möglich ist.
Sie können jedoch einen durchschnittlichen Puffer erhalten, indem Sie db.collection_name.stats()
verwenden.
Arbeiten für MongoID 5.x. Mit der Mongo Shell und MongoID ist unkompliziert:
Heben Sie Ihre Objekt-ID auf
ModelName.first.id # then copy your_id
Run Mongo-Konsole
mongo
Ermittelt die Größe des Dokuments in Bytes
Object.bsonsize(db.modelname.find({"_id": ObjectId("your_id")}))
Für Mongoid 3.x können Sie Moped :: BSON :: Document
verwendenzum Beispiel:
%Vor%