sql >> Database teknologi >  >> NoSQL >> MongoDB

Importer en JSON-fil til MongoDB med mongoimport

Når du bruger MongoDB, kan du bruge mongoimport at importere dokumenter til en samling. mongoimport er et kommandolinjeværktøj, der importerer indhold fra en udvidet JSON-, CSV- eller TSV-fil. Importfilen kunne være blevet oprettet af mongoexport eller et andet eksportværktøj.

Denne artikel præsenterer eksempler på import af en JSON-fil til MongoDB.

Eksempel

Antag, at vi har følgende JSON-fil kaldet pets.json :

{ "_id" : 1, "name" : "Wag", "type" : "Dog" }
{ "_id" : 2, "name" : "Bark", "type" : "Dog" }
{ "_id" : 3, "name" : "Meow", "type" : "Cat" }

Følgende kommando importerer JSON-filen til MongoDB:

mongoimport --db=PetHotel --file=pets.json

I dette tilfælde specificerede jeg ikke en samling at importere den til, så den oprettede en samling med samme navn på filen (pets ).

Tjek resultaterne

Lad os tage et kig på samlingen.

db.pets.find()

Resultat:

{ "_id" : 1, "name" : "Wag", "type" : "Dog" }
{ "_id" : 2, "name" : "Bark", "type" : "Dog" }
{ "_id" : 3, "name" : "Meow", "type" : "Cat" }

Vi kan se, at dokumenterne blev importeret som forventet.

Angiv samlingens navn

Du kan bruge --collection (eller -c ) parameter for at angive en samling at importere filen til.

Her er et eksempel på brug af --collection parameter for at importere den samme fil til en anden samling:

mongoimport --db=PetHotel --collection=pets2 --file=pets.json

Hvis samlingen ikke allerede eksisterer, oprettes den. Hvis det allerede eksisterer, vil importresultatet afhænge af den tilstand, du bruger (mere om dette nedenfor).

Slip samlingen før import

Du kan bruge --drop parameter for at slette enhver eksisterende samling med samme navn som den, du forsøger at oprette/importere.

Forestil dig, at vi har en anden fil, kaldet pets2.json , med følgende dokument:

{ "_id" : 4, "name" : "Bubbles" }
{ "_id" : 5, "name" : "Hop", "type": "Kangaroo" }

Her er, hvad der sker, hvis jeg importerer det dokument til pets samling ved hjælp af --drop mulighed:

mongoimport --db=PetHotel --collection=pets --drop --file=pets2.json

Output:

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.

Meddelelsen fortæller os, at samlingen blev droppet, og et dokument blev importeret.

Lad os tage et kig på kollektionen:

db.pets.find()

Resultat:

{ "_id" : 5, "name" : "Hop", "type" : "Kangaroo" }
{ "_id" : 4, "name" : "Bubbles" }

Som forventet er vores to nye dokumenter de eneste i samlingen.

Importtilstande

Der er forskellige importtilstande, som du kan bruge med mongoimport . Disse tilstande bestemmer, hvad der sker, hvis der allerede er matchende dokumenter i den samling, som du forsøger at importere til.

Tilstandene er som følger:

Tilstand Beskrivelse
insert Dette er standardtilstanden. Denne tilstand indsætter dokumenterne fra importfilen. Hvis der allerede findes et matchende dokument i samlingen, opstår der en fejl. Et matchende dokument er et, der har det samme unikke ID (såsom et matchende _id). felt) som et dokument i importfilen.
upsert Erstatter eksisterende dokumenter i databasen med matchende dokumenter fra importfilen. Alle andre dokumenter er indsat.
merge Fletter eksisterende dokumenter, der matcher et dokument i importfilen, med det nye dokument. Alle andre dokumenter er indsat.
delete Sletter eksisterende dokumenter i databasen, der matcher et dokument i importfilen. Ikke-matchende dokumenter har ingen effekt.

Se Importtilstande for mongoimport for eksempler på hver tilstand.

Se efter mongoimport

mongoimport er en del af MongoDB Database Tools-pakken. MongoDB-databaseværktøjerne er en række kommandolinjeværktøjer til at arbejde med MongoDB.

Hvis du ikke er sikker på, om du har MongoDB Database Tools/mongoimport installeret, prøv at køre følgende kommando i din terminal eller kommandoprompt for at kontrollere:

mongoimport --version

Hvis du har det, bør du se versionsoplysninger osv. Hvis du ikke har det, kan du bruge installationsinstruktionerne på MongoDB-webstedet til at installere det på dit system.

Hvor skal kommandoerne køres?

Glem ikke, du skal køre mongoimport kommandoer fra dit systems kommandolinje (f.eks. et nyt terminal- eller kommandopromptvindue).

Kør dem ikke fra mongo skal.


  1. Mongo Triple Compound Index

  2. mongo.so:> udefineret symbol:php_json_encode i Ukendt på linje 0. Efter installation mongo driver til php

  3. Sådan forskønner du eksporterede MongoDB-dokumenter i mongoexport

  4. Node.js &Redis; Venter på, at en løkke er færdig