Update (Juli 2015): TOOLS-675 wird nun als abgeschlossen markiert, die für die Ablagerung auf ein Archivformat in 3.2 und gzip wird ermöglicht, eine der Optionen in den 3.2-Versionen der mongodump/mongorestore
Tool. Ich werde mit den entsprechenden Dokumenten aktualisieren, sobald sie für 3,2
Original-Antwort Live sind (3,0 und unten):
Sie können dies mit einer einzigen Sammlung von mongodump
zu stdout
ausgeben, dann ist es mit einer Rohrleitung Komprimierungsprogramm (gzip, bzip2), aber Sie erhalten nur Daten (keine Indexinformationen) und Sie können es jetzt nicht für eine vollständige Datenbank (mehrere Sammlungen) tun. Die relevante Funktionsanforderung für diese Funktionalität ist SERVER-5190 für Upvoting/Watching-Zwecke.
Hier ist ein kurzer Probelauf durch von dem, was möglich ist, mit bzip2
in diesem Beispiel:
./mongo
MongoDB shell version: 2.6.1
connecting to: test
> db.foo.find()
{ "_id" : ObjectId("53ad8a3eb74b5ae2ff0ec93a"), "a" : 1 }
{ "_id" : ObjectId("53ad8ba445be9c4f7bd018b4"), "a" : 2 }
{ "_id" : ObjectId("53ad8ba645be9c4f7bd018b5"), "a" : 3 }
{ "_id" : ObjectId("53ad8ba845be9c4f7bd018b6"), "a" : 4 }
{ "_id" : ObjectId("53ad8baa45be9c4f7bd018b7"), "a" : 5 }
>
bye
$ ./mongodump -d test -c foo -o - | bzip2 - > foo.bson.bz2
connected to: 127.0.0.1
$ bunzip2 foo.bson.bz2
$ ./bsondump foo.bson
{ "_id" : ObjectId("53ad8a3eb74b5ae2ff0ec93a"), "a" : 1 }
{ "_id" : ObjectId("53ad8ba445be9c4f7bd018b4"), "a" : 2 }
{ "_id" : ObjectId("53ad8ba645be9c4f7bd018b5"), "a" : 3 }
{ "_id" : ObjectId("53ad8ba845be9c4f7bd018b6"), "a" : 4 }
{ "_id" : ObjectId("53ad8baa45be9c4f7bd018b7"), "a" : 5 }
5 objects found
Vergleichen Sie das mit einer geraden mongodump
(Sie erhalten die gleiche foo.bson aber die extra foo.metadata. json die Indizes beschreiben, nicht oben) enthalten:
$ ./mongodump -d test -c foo -o .
connected to: 127.0.0.1
2014-06-27T16:24:20.802+0100 DATABASE: test to ./test
2014-06-27T16:24:20.802+0100 test.foo to ./test/foo.bson
2014-06-27T16:24:20.802+0100 5 documents
2014-06-27T16:24:20.802+0100 Metadata for test.foo to ./test/foo.metadata.json
$ ./bsondump test/foo.bson
{ "_id" : ObjectId("53ad8a3eb74b5ae2ff0ec93a"), "a" : 1 }
{ "_id" : ObjectId("53ad8ba445be9c4f7bd018b4"), "a" : 2 }
{ "_id" : ObjectId("53ad8ba645be9c4f7bd018b5"), "a" : 3 }
{ "_id" : ObjectId("53ad8ba845be9c4f7bd018b6"), "a" : 4 }
{ "_id" : ObjectId("53ad8baa45be9c4f7bd018b7"), "a" : 5 }
5 objects found
Wenn Sie mongodump laufen --help Sie eine Option zur Ausgabe an die Standardausgabe zu sehen, die --out ist "-". Dies sollte Ihnen erlauben, in gzip zu pipen, wie Sie es mit mysql tun. Ich habe es nicht getestet, aber einen Versuch wert. –
Wenn dies nicht wie bei MySQL möglich ist, werden die Ergebnisse von mysqldump nur in gzip, native Linux-Funktionalität übertragen – Sammaye