MongoDB
 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 , тъй като е отделна помощна програма.

Горната команда предполага, че директорията MongoDB bin е във вашия PATH. Ако не е, ще трябва да използвате пълния път до mongoexport файл. Например /mongodb/bin/mongoexport или където и да е инсталирано внедряването на MongoDB.

Ако не предоставите пътека на файла за експортирания файл, той ще бъде създаден, където и да се намирате, когато изпълните командата. Или посочете пълния път, или отидете до мястото, където искате да бъде записан файлът с данни, преди да изпълните командата.

Експортирайте колекция в CSV файл

За да експортирате в CSV файл, добавете --type=csv към командата.

Трябва също да посочите полетата в документите на MongoDB за експортиране.

Тук използваме mongoexport за да експортирате изпълнители колекция в CSV файл. Експортираме _id и име на изпълнител полета. Също така сме дали името на файла .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 опция за задаване на заявка за експортиране. Заявката трябва да бъде затворена в единични кавички.

Тук експортираме подробности за Майлс Дейвис в 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"}]}

--skip Опция

Позволява ви да инструктирате 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"}

--pretty Опция

Извежда документи в по-четлив 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. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Как да получите целия брой на модела мангуста?

  2. MongoDB.Driver.Builders как да групирате и да получите средно

  3. MongoDB Schema Design - Много малки документи или по-малко големи документи?

  4. Може ли MongoDB да използва индекс, когато проверява за съществуване на поле с оператор $exists?

  5. Как да конфигурирам MongoDB клъстер, който поддържа сесии?