sql >> Base de Datos >  >> NoSQL >> MongoDB

MongoDB - Exportar datos

En MongoDB, puede exportar datos utilizando mongoexport utilidad.

Puede usar mongoexport utilidad para exportar datos desde su base de datos MongoDB, a un archivo JSON o CSV.

La utilidad se encuentra en MongoDB bin directorio (por ejemplo, /mongodb/bin ). Cuando ejecute la utilidad, proporcione el nombre de la base de datos, la colección y el archivo al que desea que se exporte.

Para exportar datos, primero abra una nueva ventana de Terminal/Símbolo del sistema y luego escriba el comando correspondiente.

Exportar una colección a un archivo JSON

Aquí, usamos mongoexport para exportar los artistas colección a un archivo JSON:

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

Mensaje resultante:

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

Archivo 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"}

Si encuentra que no puede ejecutar mongoexport , asegúrese de haber salido de mongo utilidad, o abrió una nueva ventana de Terminal/Símbolo del sistema antes de ejecutar mongoexport , ya que es una utilidad separada.

El comando anterior asume que el directorio bin de MongoDB está en su RUTA. Si no es así, deberá usar la ruta completa a mongoexport expediente. Por ejemplo, /mongodb/bin/mongoexport o donde sea que esté instalada su implementación de MongoDB.

Si no proporciona una ruta de archivo para el archivo exportado, se creará donde se encuentre cuando ejecute el comando. Proporcione la ruta completa o navegue hasta donde desea que se escriba el archivo de datos antes de ejecutar el comando.

Exportar una colección a un archivo CSV

Para exportar a un archivo CSV, agregue --type=csv al comando.

También debe especificar los campos en los documentos MongoDB para exportar.

Aquí, usamos mongoexport para exportar los artistas colección a un archivo CSV. Exportamos el _id y nombre del artista los campos. También le hemos dado al archivo un nombre .csv extensión.

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

Mensaje resultante:

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

Archivo 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 los resultados de una Consulta

Puede utilizar --query opción para especificar una consulta para exportar. La consulta debe estar entre comillas simples.

Aquí, exportamos detalles sobre Miles Davis a un archivo JSON:

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

Mensaje resultante:

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

Archivo 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"}]}

Otras opciones

El mongoexport utilidad proporciona una serie de opciones. Aquí hay algunos potencialmente útiles.

El --limit Opción

Limita el número de documentos en la exportación.

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

Archivo resultante:

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

El --sort Opción

Especifica cómo se ordenan los resultados.

Aquí, ordenamos el archivo por _id campo en orden ascendente (es decir, 1 ). Para hacerlo descender, use un -1 .

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

Archivo 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"}]}

El --skip Opción

Le permite dar instrucciones a mongoexport para omitir una serie de documentos antes de iniciar la operación de exportación.

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

Archivo 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"}

El --pretty Opción

Genera documentos en un formato JSON más legible.

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

Archivo 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"
		}
	]
}