MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

MongoDB - Exportar dados


No MongoDB, você pode exportar dados usando o mongoexport Utilitário.

Você pode usar o mongoexport utilitário para exportar dados do seu banco de dados MongoDB para um arquivo JSON ou CSV.

O utilitário está localizado no MongoDB bin diretório (por exemplo, /mongodb/bin ). Ao executar o utilitário, forneça o nome do banco de dados, a coleção e o arquivo para o qual deseja exportá-lo.

Para exportar dados, primeiro abra uma nova janela Terminal/Prompt de comando e digite o comando aplicável.

Exportar uma coleção para um arquivo JSON


Aqui, usamos mongoexport para exportar os artistas coleção para um arquivo JSON:
mongoexport --db music --collection artists --out /data/dump/music/artists.json

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

Arquivo resultante:
{"_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"}

Se você achar que não pode executar mongoexport , certifique-se de ter saído do mongo utilitário, ou abriu uma nova janela Terminal/Prompt de Comando antes de executar mongoexport , pois é um utilitário separado.

O comando acima assume que o diretório bin do MongoDB está em seu PATH. Se não for, você precisará usar o caminho completo para mongoexport Arquivo. Por exemplo, /mongodb/bin/mongoexport ou onde quer que sua implantação do MongoDB esteja instalada.

Se você não fornecer um caminho de arquivo para o arquivo exportado, ele será criado onde quer que você esteja quando você executar o comando. Forneça o caminho completo ou navegue até onde deseja que o arquivo de dados seja gravado antes de executar o comando.

Exportar uma coleção para um arquivo CSV


Para exportar para um arquivo CSV, adicione --type=csv ao comando.

Você também deve especificar os campos nos documentos do MongoDB a serem exportados.

Aqui, usamos mongoexport para exportar os artistas coleção para um arquivo CSV. Exportamos o _id e nome do artista Campos. Também demos ao nome do arquivo um .csv extensão.
mongoexport --db music --collection artists --type=csv --fields _id,artistname --out /data/dump/music/artists.csv

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

Arquivo CSV resultante:
_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

Exportar os resultados de uma consulta


Você pode usar o --query opção para especificar uma consulta para exportar. A consulta deve ser colocada entre aspas simples.

Aqui, exportamos detalhes sobre Miles Davis para um arquivo JSON:
mongoexport --db music --collection artists --query '{"artistname": "Miles Davis"}' --out /data/dump/music/miles_davis.json

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

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

Outras opções


O mongoexport utilitário fornece uma série de opções. Aqui estão alguns potencialmente úteis.

O --limit Opção


Limita o número de documentos na exportação.
mongoexport --db music --collection artists --limit 3 --out /data/dump/music/3_artists.json

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

O --sort Opção


Especifica como os resultados são ordenados.

Aqui, classificamos o arquivo pelo _id campo em ordem crescente (ou seja, 1 ). Para torná-lo descendente, use um -1 .
mongoexport --db music --collection artists --limit 3 --sort '{_id: 1}' --out /data/dump/music/3_artists_sorted.json

Arquivo resultante:
{"_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"}]}

O --skip Opção


Permite que você instrua mongoexport pular uma série de documentos antes de iniciar a operação de exportação.
mongoexport --db music --collection artists --limit 3 --sort '{_id: 1}' --skip 2 --out /data/dump/music/3_artists_sorted_skipped.json

Arquivo resultante:
{"_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"}

O --pretty Opção


Gera documentos em um formato JSON mais legível.
mongoexport --db music --collection artists --query '{"artistname": "Miles Davis"}' --pretty --out /data/dump/music/miles_davis_pretty.json

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