132

だから私はあまり知りませんMongoDB。私はRoboMongoMongoDBに接続するものを使用しています。私がする必要があるのはこれです - そのMongoDBにはコレクションがあります。ファイルに保存できるように、そのコレクションからデータをエクスポートしたいと考えています。

インターフェイスを使用してコレクションのデータをテキストとして開き、Ctrl+Aを実行してテキスト ファイルに貼り付けました。ただし、すべてのデータがコピーされているわけではなく、テキスト データに多くのコメントがあり、JSON が自然に壊れていることがわかりました。

RoboMongo にExport As JSONきれいなエクスポートができる機能があるかどうか疑問に思っています。

どんなポインタでも大歓迎です!

4

15 に答える 15

70

MongoDB シェル スクリプトtojsonで各レコードを JSON に変換するために使用できます。

RoboMongo で次のスクリプトを実行します。

var cursor = db.getCollection('foo').find({}, {});
while(cursor.hasNext()) {
    print(tojson(cursor.next()))
}

これにより、すべての結果が JSON のような配列として出力されます。

結果は実際には JSON ではありません。日付やオブジェクト ID などの一部の型は、JavaScript 関数呼び出しとして出力されます (例: ISODate("2016-03-03T12:15:49.996Z").

大規模な結果セットではあまり効率的ではないかもしれませんが、クエリを制限できます。または、 を使用することもできますmongoexport

于 2016-08-05T08:35:58.830 に答える
36

Robomongo のシェル機能が問題を解決します。私の場合、CSV 形式としていくつかの列が必要でした。

var cursor = db.getCollection('Member_details').find({Category: 'CUST'},{CustomerId :1,Name :1,_id:0})

while (cursor.hasNext()) {
    var record = cursor.next();   
    print(record.CustomerID + "," + record.Name)
}

Output : -------

334, Harison
433, Rechard
453, Michel
533, Pal
于 2016-05-09T19:52:36.720 に答える
19

MongoDB GUI はいくつかありますが、その中にはデータ エクスポートのサポートが組み込まれているものもあります。MongoDB GUI の包括的なリストは、http://mongodb-tools.com にあります

コレクション全体のエクスポートではなく、クエリの結果のエクスポートについて質問しました。3T MongoChef MongoDB GUIを試してみてください。このツールは、特定のユース ケースをサポートしています。

于 2015-02-26T20:34:03.500 に答える
12

このコマンドをシェルで実行しないでください。コマンド プロンプトでこのスクリプトを入力し、データベース名、コレクション名、およびファイル名をすべてプレースホルダーに置き換えて入力してください。

mongoexport --db (Database name) --collection (Collection Name) --out (File name).json

わたしにはできる。

于 2016-08-17T07:27:27.190 に答える
8

ロボモンゴにそんな機能はないと思います。したがって、特定のコレクションの mongoexport として mongodb 関数を使用することをお勧めします。

http://docs.mongodb.org/manual/reference/program/mongoexport/#export-in-json-format

ただし、バックアップソリューションを探している場合は、使用することをお勧めします

mongodump / mongorestore
于 2015-02-26T03:19:44.820 に答える
6

mongoimportを使用する場合は、次の方法でエクスポートします。

db.getCollection('tables')
  .find({_id: 'q3hrnnoKu2mnCL7kE'})
  .forEach(function(x){printjsononeline(x)});
于 2017-04-19T15:01:30.677 に答える
5

アニッシュの答えを拡張して、printステートメント内でそれらを定義する必要があるのではなく、すべてのフィールドを自動的に出力するために、任意のクエリに適用できるものが必要でした。おそらく単純化できますが、これは素早い&汚いもので、うまく機能します:

var cursor = db.getCollection('foo').find({}, {bar: 1, baz: 1, created_at: 1, updated_at: 1}).sort({created_at: -1, updated_at: -1});

while (cursor.hasNext()) {
    var record = cursor.next();
    var output = "";
    for (var i in record) {
      output += record[i] + ",";
    };
    output = output.substring(0, output.length - 1);
    print(output);
}
于 2016-05-27T12:37:37.460 に答える
2

ロボモンゴ シェル スクリプトの使用:

//on the same db
var cursor = db.collectionname.find();

while (cursor.hasNext()) {
    var record = cursor.next();   
    db.new_collectionname.save(record);
}

mongodb の export および import コマンドの使用

--jsonArrayパラメータ/フラグをコマンドに追加できますmongoexport。これにより、結果が単一のjson配列としてエクスポートされます。

次に--jsonArray、インポート時にフラグを再度指定するだけです。

または、ファイル内の開始および終了の配列ブラケット [] を削除すると、変更およびエクスポートされたファイルは、フラグmongoimportなしでコマンドを使用してインポートされます。--jsonArray

エクスポートの詳細はこちら: https://docs.mongodb.org/manual/reference/program/mongoexport/#cmdoption--jsonArray

ここにインポート: https://docs.mongodb.org/manual/reference/program/mongoimport/#cmdoption--jsonArray

于 2015-12-07T14:24:55.467 に答える
1

これと同じ問題があり、robomongo (Robo 3T 1.1.1) でスクリプトを実行しても値をコピーできず、エクスポート オプションもありませんでした。これを達成できる最善の方法は、mongoexport を使用することです。mongodb がローカルにインストールされている場合は、mongoexport を使用して任意のサーバーのデータベースに接続し、データを抽出できます。

リモート サーバー上のデータと csv 出力ファイルに接続するには、コマンド ラインで次の mongoexport を実行します。

mongoexport --host HOSTNAME --port PORT --username USERNAME --password "PASSWORD" --collection COLLECTION_NAME --db DATABASE_NAME --out OUTPUTFILE.csv --type=csv --fieldFile fields.txt

fieldFile: 目的の列を抽出するのに役立ちます。例: fields.txt の内容は次のとおりです。

ユーザーID

列「userId」の値のみを抽出する

リモート サーバー上のデータ、json 出力ファイル:

mongoexport --host HOST_NAME --port PORT --username USERNAME --password "PASSWORD" --collection COLECTION_NAME --db DATABASE_NAME --out OUTPUT.json

これにより、すべてのフィールドが json ファイルに抽出されます

localhost 上のデータ (mongodb は localhost で実行されている必要があります)

mongoexport --db DATABASE_NAME --collection COLLECTION --out OUTPUT.json

参照: https://docs.mongodb.com/manual/reference/program/mongoexport/#use

于 2017-12-07T00:34:51.627 に答える