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

Importer dokumenter til MongoDB fra en række JSON-dokumenter

Når du bruger mongoimport , kan du bruge --jsonArray parameter for at importere et array af JSON-dokumenter.

Eksempel

Antag, at vi har følgende JSON-dokument kaldet pets_array.json :

[
    {"_id":1.0,"name":"Wag","type":"Dog"},
    {"_id":2.0,"name":"Bark","type":"Dog"},
    {"_id":3.0,"name":"Meow","type":"Cat"}
]

Hvis vi prøver at importere det til MongoDB uden ved hjælp af --jsonArray parameter, får vi følgende fejl:

2021-01-03T13:52:58.360+1000	no collection specified
2021-01-03T13:52:58.360+1000	using filename 'pets_array' as collection
2021-01-03T13:52:58.366+1000	connected to: mongodb://localhost/
2021-01-03T13:52:58.371+1000	Failed: cannot decode array into a D
2021-01-03T13:52:58.371+1000	0 document(s) imported successfully. 0 document(s) failed to import.

Dybest set kan den ikke afkode arrayet til et dokument.

For at rette dette kan vi blot tilføje --jsonArray parameter:

mongoimport --db=PetHotel --jsonArray --file=pets_array.json

Output:

2021-01-03T13:58:13.407+1000	no collection specified
2021-01-03T13:58:13.408+1000	using filename 'pets_array' as collection
2021-01-03T13:58:13.421+1000	connected to: mongodb://localhost/
2021-01-03T13:58:13.450+1000	3 document(s) imported successfully. 0 document(s) failed to import.

Dette fortæller os, at alle tre dokumenter blev importeret med succes.

Vi kan nu tage et kig på kollektionen for at tjekke:

db.pets_array.find()

Resultat:

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

Som forventet er alle tre dokumenter i den nyoprettede samling.

Samlingen er nyoprettet, fordi vi ikke har angivet en samling at importere dokumenterne til. Hvis vi havde, så ville de være blevet importeret til den angivne samling.

Har ikke 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 mongoimport køres Kommandoer?

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. Ekskluder specifikke felter i jokertegnindeks i MongoDB

  2. Sådan automatiseres og administreres MongoDB med ClusterControl

  3. Bestilling af et resultatsæt tilfældigt på mongo

  4. Den nemmeste måde at kopiere/klone en mongoose-dokumentinstans?