Wanneer u MongoDB gebruikt, kunt u mongoimport
. gebruiken om documenten in een collectie te importeren. mongoimport
is een opdrachtregelprogramma dat inhoud importeert uit een uitgebreid JSON-, CSV- of TSV-bestand. Het importbestand kan zijn gemaakt door mongoexport
of een ander exporthulpprogramma.
Dit artikel geeft voorbeelden van het importeren van een JSON-bestand in MongoDB.
Voorbeeld
Stel dat we het volgende JSON-bestand hebben met de naam pets.json
:
{ "_id" : 1, "name" : "Wag", "type" : "Dog" } { "_id" : 2, "name" : "Bark", "type" : "Dog" } { "_id" : 3, "name" : "Meow", "type" : "Cat" }
De volgende opdracht importeert het JSON-bestand in MongoDB:
mongoimport --db=PetHotel --file=pets.json
In dit geval heb ik geen verzameling gespecificeerd om het in te importeren, dus heeft het een verzameling gemaakt met dezelfde naam als het bestand (pets
).
Controleer de resultaten
Laten we de collectie eens bekijken.
db.pets.find()
Resultaat:
{ "_id" : 1, "name" : "Wag", "type" : "Dog" } { "_id" : 2, "name" : "Bark", "type" : "Dog" } { "_id" : 3, "name" : "Meow", "type" : "Cat" }
We kunnen zien dat de documenten zijn geïmporteerd zoals verwacht.
Geef de collectienaam op
U kunt de --collection
. gebruiken (of -c
) parameter om een verzameling op te geven waarin het bestand moet worden geïmporteerd.
Hier is een voorbeeld van het gebruik van de --collection
parameter om hetzelfde bestand in een andere verzameling te importeren:
mongoimport --db=PetHotel --collection=pets2 --file=pets.json
Als de collectie nog niet bestaat, wordt deze gemaakt. Als het al bestaat, hangt het importresultaat af van de modus die je gebruikt (meer hierover hieronder).
Laat de verzameling vallen voordat u deze importeert
U kunt de --drop
. gebruiken parameter om een bestaande verzameling te verwijderen met dezelfde naam als degene die u probeert te maken/importeren.
Stel je voor dat we een tweede bestand hebben, genaamd pets2.json
, met het volgende document:
{ "_id" : 4, "name" : "Bubbles" } { "_id" : 5, "name" : "Hop", "type": "Kangaroo" }
Dit is wat er gebeurt als ik dat document importeer naar de pets
verzameling met behulp van de --drop
optie:
mongoimport --db=PetHotel --collection=pets --drop --file=pets2.json
Uitgang:
2021-01-03T15:42:25.626+1000 connected to: mongodb://localhost/ 2021-01-03T15:42:25.640+1000 dropping: PetHotel.pets 2021-01-03T15:42:25.734+1000 2 document(s) imported successfully. 0 document(s) failed to import.
Het bericht vertelt ons dat de verzameling is verwijderd en dat één document is geïmporteerd.
Laten we de collectie eens bekijken:
db.pets.find()
Resultaat:
{ "_id" : 5, "name" : "Hop", "type" : "Kangaroo" } { "_id" : 4, "name" : "Bubbles" }
Zoals verwacht zijn onze twee nieuwe documenten de enige in de collectie.
Importmodi
Er zijn verschillende importmodi die u kunt gebruiken met mongoimport
. Deze modi bepalen wat er gebeurt als er al overeenkomende documenten zijn in de collectie waarin u probeert te importeren.
De modi zijn als volgt:
Modus | Beschrijving |
---|---|
insert | Dit is de standaardmodus. In deze modus worden de documenten uit het importbestand ingevoegd. Als er al een overeenkomend document in de collectie bestaat, treedt er een fout op. Een overeenkomend document is een document met dezelfde unieke ID (zoals een overeenkomende _id veld) als een document in het importbestand. |
upsert | Vervangt bestaande documenten in de database door overeenkomende documenten uit het importbestand. Alle andere documenten worden ingevoegd. |
merge | Samenvoegen bestaande documenten die overeenkomen met een document in het importbestand met het nieuwe document. Alle andere documenten worden ingevoegd. |
delete | Verwijdert bestaande documenten in de database die overeenkomen met een document in het importbestand. Alle niet-overeenkomende documenten hebben geen effect. |
Zie de importmodi van mongoimport
voor voorbeelden van elke modus.
Controleer op mongoimport
mongoimport
maakt deel uit van het MongoDB Database Tools-pakket. De MongoDB Database Tools zijn een reeks opdrachtregelhulpprogramma's voor het werken met MongoDB.
Als u niet zeker weet of u over de MongoDB Database Tools/mongoimport
beschikt geïnstalleerd, probeer dan het volgende commando in je Terminal of Command Prompt uit te voeren om te controleren:
mongoimport --version
Als je het hebt, zou je versie-informatie, enz. moeten zien. Als je het niet hebt, kun je de installatie-instructies op de MongoDB-website gebruiken om het op je systeem te installeren.
Waar moeten de opdrachten worden uitgevoerd?
Vergeet niet dat u mongoimport
. moet uitvoeren opdrachten vanaf de opdrachtregel van uw systeem (bijvoorbeeld een nieuw Terminal- of opdrachtpromptvenster).
Voer ze niet uit vanuit de mongo
schelp.