sql >> Database >  >> NoSQL >> MongoDB

Documenten importeren in MongoDB vanuit een array van JSON-documenten

Bij gebruik van mongoimport , kunt u de --jsonArray . gebruiken parameter om een ​​array van JSON-documenten te importeren.

Voorbeeld

Stel dat we het volgende JSON-document hebben met de naam pets_array.json :

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

Als we dat proberen te importeren in MongoDB zonder met behulp van de --jsonArray parameter krijgen we de volgende foutmelding:

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.

In principe kan het de array niet decoderen in een document.

Om dit op te lossen, kunnen we eenvoudig de --jsonArray . toevoegen parameter:

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

Uitgang:

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.

Dit vertelt ons dat alle drie de documenten met succes zijn geïmporteerd.

We kunnen nu de collectie bekijken om te controleren:

db.pets_array.find()

Resultaat:

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

Zoals verwacht zitten alle drie de documenten in de nieuw aangemaakte collectie.

De verzameling is nieuw gemaakt omdat we geen verzameling hebben opgegeven om de documenten in te importeren. Als we dat hadden gedaan, zouden ze zijn geïmporteerd in de opgegeven verzameling.

Heb geen 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 kunt u mongoimport uitvoeren Commando's?

U moet mongoimport . uitvoeren opdrachten vanaf de opdrachtregel van uw systeem (bijvoorbeeld een nieuw Terminal- of opdrachtpromptvenster).

Voer ze niet uit vanuit de mongo schelp.


  1. Een tijdelijke oplossing nodig voor het opzoeken van een string naar objectID ForeignField

  2. Behouden arrays die zijn opgeslagen in MongoDB hun volgorde?

  3. Mongoose dubbele sleutelfout met upsert

  4. Waarom retourneert hasOwnProperty van het mangoestmodel false als de eigenschap bestaat?