Ich möchte Testdaten für MongoDB generieren. Die Größe sollte 200 MB sein. Ich habe diesen Code ausprobiert:
%Vor%Wie kann ich Daten genau mit dieser Größe erzeugen?
Ich bekomme nicht, was Sie erreichen wollen, indem Sie die Größe 200 MB einstellen.
Sie können logische Prüfungen hinzufügen.
db.testCollection.stats()
- Sie können die Größe der Sammlung vor jedem Einfügen überprüfen.
Object.bsonsize(..)
- Sie können auch die Dokumentgröße vor dem Einfügen überprüfen, um genau 200 MB zu erstellen.
Und Sie können auch eine gecappte Sammlung erstellen, in der Sie die Anzahl der Dokumente oder die Größe der Sammlung mitteilen können.
Hoffe, das hilft.
Was ich wahrscheinlich tun würde, ist eine gecappte Sammlung mit einer Größe von 200 MB (209715200 Bytes):
db.createCollection( "ssv", { capped: true, size: 209715200 } )
Fügen Sie dann Datensätze ein, wie Sie es tun. Überprüfen Sie dann in Intervallen innerhalb der Schleife for
, ob die Sammlung voll (oder fast voll) ist.
Also in deinem Code, vielleicht (total Pseudocode):
%Vor%Warum würden Sie dieselben Daten 100 Mal kopieren, um 200 MB Testdaten zu erhalten? Stattdessen
%Vor%1. Setzen Sie einen Zähler auf den Wert, damit Sie Daten sequentiell generieren können
ODER
- Verwenden Sie die Zufallsfunktion, um zufällige Daten zu erzeugen
10 Acht Zwei-Byte-Zeichenfolgen und 10 Acht-Byte-Zahlen = & gt; 240B
240B * 873813 = 200 MB
Eine schnell dreckige Lösung basierend auf Vorschlägen von Robert Udah und Somnath Muluk: