MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Importer des documents dans MongoDB à partir d'un tableau de documents JSON

Lors de l'utilisation de mongoimport , vous pouvez utiliser le --jsonArray paramètre pour importer un tableau de documents JSON.

Exemple

Supposons que nous ayons le document JSON suivant appelé pets_array.json :

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

Si nous essayons d'importer cela dans MongoDB sans en utilisant le --jsonArray paramètre, nous obtenons l'erreur suivante :

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.

Fondamentalement, il ne peut pas décoder le tableau dans un document.

Pour résoudre ce problème, nous pouvons simplement ajouter le --jsonArray paramètre :

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

Sortie :

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.

Cela nous indique que les trois documents ont été importés avec succès.

Nous pouvons maintenant jeter un œil à la collection pour vérifier :

db.pets_array.find()

Résultat :

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

Comme prévu, les trois documents se trouvent dans la collection nouvellement créée.

La collection est nouvellement créée car nous n'avons pas spécifié de collection dans laquelle importer les documents. Si nous l'avions fait, ils auraient été importés dans la collection spécifiée.

Vous n'avez pas mongoimport ?

mongoimport fait partie du package MongoDB Database Tools. Les outils de base de données MongoDB sont une suite d'utilitaires de ligne de commande permettant de travailler avec MongoDB.

Si vous n'êtes pas sûr d'avoir les outils de base de données MongoDB/mongoimport installé, essayez d'exécuter la commande suivante dans votre terminal ou invite de commande pour vérifier :

mongoimport --version

Si vous l'avez, vous devriez voir les informations de version, etc. Si vous ne l'avez pas, vous pouvez utiliser les instructions d'installation sur le site Web de MongoDB pour l'installer sur votre système.

Où exécuter mongoimport Commandes ?

Vous devez exécuter mongoimport commandes à partir de la ligne de commande de votre système (par exemple, un nouveau terminal ou une nouvelle fenêtre d'invite de commande).

Ne les exécutez pas depuis le mongo coquille.