sql >> Database >  >> NoSQL >> MongoDB

MongoDB - Gegevens exporteren

In MongoDB kunt u gegevens exporteren met behulp van de mongoexport hulpprogramma.

U kunt de mongoexport . gebruiken hulpprogramma om gegevens uit uw MongoDB-database te exporteren naar een JSON- of CSV-bestand.

Het hulpprogramma bevindt zich in de MongoDB bin directory (bijv. /mongodb/bin ). Wanneer u het hulpprogramma uitvoert, geeft u de naam van de database, de verzameling en het bestand op waarnaar u het wilt exporteren.

Om gegevens te exporteren, opent u eerst een nieuw Terminal/Command Prompt-venster en typt u vervolgens de toepasselijke opdracht.

Een verzameling exporteren naar een JSON-bestand

Hier gebruiken we mongoexport om de artiesten te exporteren verzameling naar een JSON-bestand:

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

Resulterend bericht:

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

Resulterend bestand:

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

Als u merkt dat u mongoexport . niet kunt uitvoeren , zorg ervoor dat je ofwel de mongo . hebt verlaten hulpprogramma, of opende een nieuw Terminal/Command Prompt-venster voordat u mongoexport uitvoerde , omdat het een apart hulpprogramma is.

De bovenstaande opdracht gaat ervan uit dat de MongoDB bin-map zich in uw PATH bevindt. Als dit niet het geval is, moet u het volledige pad naar de mongoexport gebruiken het dossier. Bijvoorbeeld /mongodb/bin/mongoexport of waar uw MongoDB-implementatie ook is geïnstalleerd.

Als u geen bestandspad opgeeft voor het geëxporteerde bestand, wordt het gemaakt waar u zich ook bevindt wanneer u de opdracht uitvoert. Geef het volledige pad op of navigeer naar de plaats waar u het gegevensbestand wilt schrijven voordat u de opdracht uitvoert.

Een verzameling exporteren naar een CSV-bestand

Om naar een CSV-bestand te exporteren, voegt u --type=csv . toe naar het commando.

U moet ook de velden in de MongoDB-documenten specificeren om te exporteren.

Hier gebruiken we mongoexport om de artiesten te exporteren verzameling naar een CSV-bestand. We exporteren de _id en artiestennaam velden. We hebben de bestandsnaam ook een .csv . gegeven extensie.

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

Resulterend bericht:

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

Resulterend CSV-bestand:

_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

Exporteer de resultaten van een zoekopdracht

U kunt de --query . gebruiken optie om een ​​query op te geven om te exporteren. De zoekopdracht moet tussen enkele aanhalingstekens staan.

Hier exporteren we details over Miles Davis naar een JSON-bestand:

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

Resulterend bericht:

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

Resulterend JSON-bestand:

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

Andere opties

De mongoexport hulpprogramma biedt een aantal opties. Hier zijn enkele potentieel bruikbare.

De --limit Optie

Beperkt het aantal documenten in de export.

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

Resulterend bestand:

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

De --sort Optie

Specificeert hoe de resultaten worden geordend.

Hier sorteren we het bestand op _id veld in oplopende volgorde (d.w.z. 1 ). Gebruik een -1 . om het aflopend te maken .

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

Resulterend bestand:

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

De --skip Optie

Hiermee kunt u mongoexport instrueren om een ​​aantal documenten over te slaan voordat u de exportbewerking start.

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

Resulterend bestand:

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

De --pretty Optie

Voert documenten uit in een beter leesbaar JSON-formaat.

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

Resulterend bestand:

{
	"_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. Wat is het verschil tussen area en BoundingBox uit de broncode van Redis?

  2. Een reeds uitgevoerde taak annuleren in Python RQ?

  3. MongoDB:Combineer gegevens uit meerdere collecties in één..hoe?

  4. 8 manieren om de dag van een date te krijgen in MongoDB