sql >> Database >  >> NoSQL >> MongoDB

Importeer een JSON-bestand in MongoDB met mongoimport

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.


  1. hoe gegevens van mysql naar redis te verplaatsen

  2. Gegenereerd script in MongoDB C#-stuurprogramma ophalen

  3. MongoDB $ of vraag

  4. Een groot aantal records in een verzameling bijwerken