sql >> データベース >  >> NoSQL >> MongoDB

MongoDB-データのエクスポート

    MongoDBでは、 mongoexport を使用してデータをエクスポートできます。 ユーティリティ。

    mongoexport を使用できます MongoDBデータベースからJSONまたはCSVファイルにデータをエクスポートするユーティリティ。

    ユーティリティはMongoDB bin にあります ディレクトリ(例: / mongodb / bin )。ユーティリティを実行するときは、データベースの名前、コレクション、およびエクスポート先のファイルを指定します。

    データをエクスポートするには、最初に新しいターミナル/コマンドプロンプトウィンドウを開き、次に該当するコマンドを入力します。

    コレクションをJSONファイルにエクスポートする

    ここでは、 mongoexport を使用します アーティスト をエクスポートするには JSONファイルへのコレクション:

    mongoexport --db music --collection artists --out /data/dump/music/artists.json

    結果のメッセージ:

    2016-07-12T09:57:37.613+0700	connected to: localhost
    2016-07-12T09:57:37.614+0700	exported 13 records
    

    結果のファイル:

    {"_id":{"$oid":"5780fbf948ef8c6b3ffb0149"},"artistname":"The Tea Party"}
    {"_id":{"$oid":"5781c9ac48ef8c6b3ffb014a"},"artistname":"Jorn Lande"}
    {"_id":1.0,"artistname":"AC/DC"}
    {"_id":{"$oid":"5781d7f248ef8c6b3ffb014d"},"artistname":"The Kooks"}
    {"_id":{"$oid":"5781d7f248ef8c6b3ffb014e"},"artistname":"Bastille"}
    {"_id":{"$oid":"5781d7f248ef8c6b3ffb014f"},"artistname":"Gang of Four"}
    {"_id":{"$oid":"5781f85d48ef8c6b3ffb0150"},"artistname":"Deep Purple","albums":[{"album":"Machine Head","year":1972.0,"genre":"Rock"},{"album":"Stormbringer","year":1974.0,"genre":"Rock"}]}
    {"_id":{"$oid":"578214f048ef8c6b3ffb0159"},"artistname":"Miles Davis","albums":[{"album":"Kind of Blue","year":1959.0,"genre":"Jazz"},{"album":"Bitches Brew","year":1970.0,"genre":"Jazz"}]}
    {"_id":{"$oid":"578217c248ef8c6b3ffb015a"},"artistname":"Robben Ford","albums":[{"album":"Bringing it Back Home","year":2013.0,"genre":"Blues"},{"album":"Talk to Your Daughter","year":1988.0,"genre":"Blues"}]}
    {"_id":{"$oid":"578217c248ef8c6b3ffb015b"},"artistname":"Snoop Dogg","albums":[{"album":"Tha Doggfather","year":1996.0,"genre":"Rap"},{"album":"Reincarnated","year":2013.0,"genre":"Reggae"}]}
    {"_id":2.0,"artistname":"Prince","address":{"street":"Audubon Road","city":"Chanhassen","state":"Minnesota","country":"United States"}}
    {"_id":3.0,"artistname":"Moby","albums":[{"album":"Play","year":1999.0,"genre":"Electronica"},{"album":"Long Ambients 1: Calm. Sleep.","year":2016.0,"genre":"Ambient"}]}
    {"_id":4.0,"artistname":"Rush"}
    

    mongoexport を実行できない場合 、 mongo を終了したことを確認してください ユーティリティ、または mongoexport を実行する前に新しいターミナル/コマンドプロンプトウィンドウを開きました 、別のユーティリティであるため。

    上記のコマンドは、MongoDBbinディレクトリがPATHにあることを前提としています。そうでない場合は、 mongoexport へのフルパスを使用する必要があります ファイル。例: / mongodb / bin / mongoexport または、MongoDBデプロイメントがインストールされている場所ならどこでも。

    エクスポートされたファイルのファイルパスを指定しない場合、コマンドを実行したときにどこにいてもファイルパスが作成されます。コマンドを実行する前に、フルパスを指定するか、データファイルを書き込む場所に移動してください。

    コレクションをCSVファイルにエクスポート

    CSVファイルにエクスポートするには、-type =csvを追加します コマンドに。

    エクスポートするMongoDBドキュメントのフィールドも指定する必要があります。

    ここでは、 mongoexport を使用します アーティスト をエクスポートするには CSVファイルへのコレクション。 _id をエクスポートします および artistname 田畑。また、ファイル名には .csv を付けました。 拡張機能。

    mongoexport --db music --collection artists --type=csv --fields _id,artistname --out /data/dump/music/artists.csv

    結果のメッセージ:

    2016-07-12T10:16:33.111+0700	connected to: localhost
    2016-07-12T10:16:33.114+0700	exported 13 records
    

    結果のCSVファイル:

    _id,artistname
    ObjectId(5780fbf948ef8c6b3ffb0149),The Tea Party
    ObjectId(5781c9ac48ef8c6b3ffb014a),Jorn Lande
    1,AC/DC
    ObjectId(5781d7f248ef8c6b3ffb014d),The Kooks
    ObjectId(5781d7f248ef8c6b3ffb014e),Bastille
    ObjectId(5781d7f248ef8c6b3ffb014f),Gang of Four
    ObjectId(5781f85d48ef8c6b3ffb0150),Deep Purple
    ObjectId(578214f048ef8c6b3ffb0159),Miles Davis
    ObjectId(578217c248ef8c6b3ffb015a),Robben Ford
    ObjectId(578217c248ef8c6b3ffb015b),Snoop Dogg
    2,Prince
    3,Moby
    4,Rush
    

    クエリの結果をエクスポートする

    -queryを使用できます エクスポートするクエリを指定するオプション。クエリは一重引用符で囲む必要があります。

    ここでは、MilesDavisの詳細をJSONファイルにエクスポートします。

    mongoexport --db music --collection artists --query '{"artistname": "Miles Davis"}' --out /data/dump/music/miles_davis.json

    結果のメッセージ:

    2016-07-12T10:32:19.794+0700	connected to: localhost
    2016-07-12T10:32:19.795+0700	exported 1 record
    

    結果のJSONファイル:

    {"_id":{"$oid":"578214f048ef8c6b3ffb0159"},"artistname":"Miles Davis","albums":[{"album":"Kind of Blue","year":1959.0,"genre":"Jazz"},{"album":"Bitches Brew","year":1970.0,"genre":"Jazz"}]}
    

    その他のオプション

    mongoexport ユーティリティにはいくつかのオプションがあります。ここにいくつかの潜在的に有用なものがあります。

    -limit オプション

    エクスポートするドキュメントの数を制限します。

    mongoexport --db music --collection artists --limit 3 --out /data/dump/music/3_artists.json

    結果のファイル:

    {"_id":{"$oid":"5780fbf948ef8c6b3ffb0149"},"artistname":"The Tea Party"}
    {"_id":{"$oid":"5781c9ac48ef8c6b3ffb014a"},"artistname":"Jorn Lande"}
    {"_id":1.0,"artistname":"AC/DC"}
    

    -sort オプション

    結果の順序を指定します。

    ここでは、ファイルを _id で並べ替えます。 昇順のフィールド(例: 1 )。降順にするには、 -1を使用します 。

    mongoexport --db music --collection artists --limit 3 --sort '{_id: 1}' --out /data/dump/music/3_artists_sorted.json

    結果のファイル:

    {"_id":1.0,"artistname":"AC/DC"}
    {"_id":2.0,"artistname":"Prince","address":{"street":"Audubon Road","city":"Chanhassen","state":"Minnesota","country":"United States"}}
    {"_id":3.0,"artistname":"Moby","albums":[{"album":"Play","year":1999.0,"genre":"Electronica"},{"album":"Long Ambients 1: Calm. Sleep.","year":2016.0,"genre":"Ambient"}]}
    

    -スキップ オプション

    mongoexport に指示することができます エクスポート操作を開始する前に、いくつかのドキュメントをスキップします。

    mongoexport --db music --collection artists --limit 3 --sort '{_id: 1}' --skip 2 --out /data/dump/music/3_artists_sorted_skipped.json

    結果のファイル:

    {"_id":3.0,"artistname":"Moby","albums":[{"album":"Play","year":1999.0,"genre":"Electronica"},{"album":"Long Ambients 1: Calm. Sleep.","year":2016.0,"genre":"Ambient"}]}
    {"_id":4.0,"artistname":"Rush"}
    {"_id":{"$oid":"5780fbf948ef8c6b3ffb0149"},"artistname":"The Tea Party"}
    

    -かなり オプション

    読みやすいJSON形式でドキュメントを出力します。

    mongoexport --db music --collection artists --query '{"artistname": "Miles Davis"}' --pretty --out /data/dump/music/miles_davis_pretty.json

    結果のファイル:

    {
    	"_id": {
    		"$oid": "578214f048ef8c6b3ffb0159"
    	},
    	"artistname": "Miles Davis",
    	"albums": [
    		{
    			"album": "Kind of Blue",
    			"year": 1959.0,
    			"genre": "Jazz"
    		},
    		{
    			"album": "Bitches Brew",
    			"year": 1970.0,
    			"genre": "Jazz"
    		}
    	]
    }
    

    1. Node.jsを使用してMongoDBでcursor.forEach()を使用するにはどうすればよいですか?

    2. Mongodbをシリアル化するJSON

    3. MongoDBデータディレクトリ/data/dbが見つかりません

    4. Redisのパスワードを設定するにはどうすればよいですか?