Bestimmen Sie die Größe eines Dokuments mit Mongoid

8

Gibt es eine Methode, um die Größe einer bestimmten Instanz eines Modells / Dokuments in einer MongoDB mit Mongoid zu bestimmen?

    
Tom Johnson 07.01.2012, 22:16
quelle

5 Antworten

7

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.

    
Gates VP 08.01.2012, 09:08
quelle
5

Lösung für 2015 und Mongoid (4.0.2):

%Vor%     
Alexander Karmes 30.04.2015 13:50
quelle
0

Dies funktioniert für Mongoid 3.1.0:

%Vor%     
kizzx2 16.07.2013 16:25
quelle
0

Arbeiten für MongoID 5.x. Mit der Mongo Shell und MongoID ist unkompliziert:

  1. Heben Sie Ihre Objekt-ID auf

    ModelName.first.id # then copy your_id

  2. Run Mongo-Konsole

    mongo

  3. Ermittelt die Größe des Dokuments in Bytes

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

Rendrum 23.05.2016 08:30
quelle
-1

Für Mongoid 3.x können Sie Moped :: BSON :: Document

verwenden

zum Beispiel:

%Vor%     
Agung Prasetyo 30.09.2013 09:34
quelle

Tags und Links