2014-01-30 10 views
5

Die Mongodump Dokumentation SieMongoDump Abfrage mit BinData

heißt

mongodump --host localhost --db mydb --collection testCollection --query "{SomeKey: 'some value'}" 

Ich Speicherung _ids Felder als BinData eine spezifische Abfrage kann Dump angibt, ist es möglich, auf diese abzufragen?

Ich habe

versucht
mongodump --host localhost --db mydb --collection testCollection --query "{_id: 'BinData(3,ryBRQ+Px0kGRsZofJhHgqg==)'}" 

ohne Glück.

Antwort

3

Dies braucht leider viel zu entkommen. Außerdem müssen Sie stattdessen die $binary Darstellung verwenden, z.

mongodump --host localhost --db test --collection bd --query 
"{\"_id\" : { \"$binary\" : \"ryBRQ+Px0kGRsZofJhHgqg==\", \"$type\" : \"03\" } }" 

Beachten Sie, dass $type ein Hex-String sein muss, keine Zahl.

In Linux müssen Sie auch die $ zu \$ zu entkommen.

+0

Ich versuchte dies, es lief, aber ohne übereinstimmende Ergebnisse. In MongoVue kann ich sehen, dass mein _id-Feld als "Binary - 3: UuidLegacy" gespeichert ist. Dies ist auch derselbe Typ, den Sie in Ihrer Abfrage festgelegt haben. Ich habe keine Ahnung, warum es nichts zurückgibt. Ich habe versucht, die von MongoVue zur Verfügung gestellte, nicht gescannte Abfrage auszuführen, und es hat auch keine Ergebnisse ergeben. –

+0

Ich testete dies auf meiner win7 Maschine, bevor ich es posten konnte und es funktionierte. Läuft Linux oder Windows? Welche Mongo-Version liegst du? (meins: 2.5.4) – mnemosyn

+0

Ich verwende 2.2.2, Windows 7. –

4

Sie müssen nicht so viel entkommen. Sie können nur einzelne Anführungszeichen außerhalb der Abfrage und doppelte Anführungszeichen innen, also verwenden Aber Vorsicht den Typ als hex haben „03“ bedeutet und nicht „3“

mongodump --host localhost --db test --collection bd --query 
'{"_id" : { "$binary" : "ryBRQ+Px0kGRsZofJhHgqg==", "$type" : "03" } }' 
+0

Dies funktioniert auch –