2016-09-30 1 views
0

Ich speichere Dateien in einem regulären MongoDB-Dokument ohne GridFS (die Dateien sind alle kleiner als das Limit von 16 MB).Ausgabe von MongoDB BSON BinData im Terminal verhindern

Wenn ich diesen Ansatz nehme, stoße ich auf das Problem, dass wenn ich zum Beispiel eine db.collection.find Operation im Terminal mache, es die gesamten binären Daten ausgeben wird. Für kleine Dateien ist das kein Problem, aber wenn die Datei 8 MB groß ist, dauert es etwa 20 Sekunden, um diese Binärdatei im Terminal auszugeben.

Gibt es eine Möglichkeit, die Ausgabe der gesamten Binärdaten an das Terminal zu verhindern?

Das Dokument etwa hat die folgende Struktur:

 
{ 
    _id: ObjectId 
    field1: string 
    field2: string 
    field3: string 
    attachment: { 
       filename: string 
       data: BinData 
       } 
} 

Wenn es nicht attachment ist, wird es aus dem Dokument verbleibt.

+0

Möchten Sie es nicht haben? Was willst du anstelle der gesamten Binärdaten? –

+0

Ich würde gerne wissen, dass das Dokument einen Anhang hat, aber nicht alles auf der Konsole ausgibt, da es 20 Sekunden dauert, nur um es auszugeben. Ich dachte, eine mögliche Lösung wäre, die Binärdaten in einer anderen Sammlung zu speichern und nur einen Verweis darauf im eigentlichen Dokument zu speichern ... – Sjiep

Antwort

1

Wie stellen Sie sicher, dass die Abfrage findet die Dokumente, die das Feld Anlage $exists in ihnen aber dieses Feld mit projection aus Ihren Ergebnissen auszuschließen?

Sie können Ihre Anfrage natürlich erweitern. Stellen Sie nur sicher, dass Sie die zusätzliche Bedingung behalten.

Verwandte Themen