51

MongoDBコマンドの結果をフラットファイルにエクスポートするにはどうすればよいですか?

たとえばdb.collectionname.find()、フラットファイルに入る場合です。

試しdb.collectionname.find() >> "test.txt"たがうまくいかないようです。

4

8 に答える 8

83

コマンドラインから次のことを試すことができます

mongo 127.0.0.1/db --eval "var c = db.collection.find(); while(c.hasNext()) {printjson(c.next())}" >> test.txt

ローカルホストで実行されている「db」というデータベースと「collection」というコレクションがあるとすると、これによりすべてのレコードがtest.txtというファイルにエクスポートされます。

実行したい長いスクリプトがある場合は、script.jsファイルを作成して使用することもできます

mongo 127.0.0.1/db script.js >> test.txt

これがお役に立てば幸いです

于 2012-10-10T16:33:43.640 に答える
28

私はmongoシェルから直接それを行う方法を知りませんが、mongoexportにクエリを実行させ、-qおよび-oオプションを使用して結果をファイルに送信することができます。

mongoexport -h mongo.dev.priv -d models -c profiles -q '{ $query : { _id : "MRD461000" } }' -o MRD_Series1.json

上記のヒットは、モデルデータベースのプロファイルコレクションをクエリして、JSONドキュメントで_id="MRD641000"を取得します。私のために働きます。

于 2012-10-10T16:31:47.800 に答える
8

これを使って

mongo db_name --username user --password password < query1.js >> result.txt
于 2015-05-28T12:48:06.027 に答える
3

これを試してください-クエリのデータを含むjsonファイルを返します。変更することができ.jsonます.txt

mongoexport --db products --collection clicks --query '{"createdInt":{$gte:20190101}, "clientId":"123", "country":"ES"}' --out clicks-2019.json
于 2019-01-17T09:42:33.513 に答える
1

Peshkiraの回答で実際のdbである必要があるdbを見逃したので、シェル内の1つのライナーの一般的な構文を次に示します(パスワードがないと仮定)。

mongo <host>:<db name> --eval "var x = <db name>.<collection name>.<query>; while(x.hasNext()) { printjson( x.next() ) }" >> out.txt

MacとGoogleクラウドUbuntu15の両方でMongo3+を使用してテストしました。

于 2015-10-02T10:14:17.237 に答える
1

MongoDB Compassをインストールすると、クエリ結果をJson/CSVファイルにエクスポートするツールが追加されます。

于 2020-06-11T14:48:42.450 に答える
0
mongoexport --host 127.0.0.1 --port 27017 --username youruser -p yourpass \
   -d yourDatabaseName -c collectionName --type csv \
   --fields field1,field2 -q '{"field1" : 1495730914381}' \
   --out report.csv
于 2017-05-25T18:23:47.673 に答える
-1

mongoexport --db db_name --collection collection_name --csv --out file_name.csv -f field1、field2、field3

于 2016-08-22T18:48:46.603 に答える