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

Importer un fichier JSON dans MongoDB avec mongoimport

Lorsque vous utilisez MongoDB, vous pouvez utiliser mongoimport pour importer des documents dans une collection. mongoimport est un utilitaire de ligne de commande qui importe le contenu d'un fichier JSON étendu, CSV ou TSV. Le fichier d'import a peut-être été créé par mongoexport ou un autre utilitaire d'exportation.

Cet article présente des exemples d'importation d'un fichier JSON dans MongoDB.

Exemple

Supposons que nous ayons le fichier JSON suivant appelé pets.json :

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

La commande suivante importe le fichier JSON dans MongoDB :

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

Dans ce cas, je n'ai pas spécifié de collection dans laquelle l'importer, donc il a créé une collection avec le même nom de fichier (pets ).

Vérifiez les résultats

Jetons un coup d'œil à la collection.

db.pets.find()

Résultat :

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

Nous pouvons voir que les documents ont été importés comme prévu.

Spécifiez le nom de la collection

Vous pouvez utiliser le --collection (ou -c ) paramètre pour spécifier une collection dans laquelle importer le fichier.

Voici un exemple d'utilisation de la --collection paramètre pour importer le même fichier dans une autre collection :

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

Si la collection n'existe pas déjà, elle sera créée. S'il existe déjà, le résultat de l'importation dépendra du mode que vous utilisez (plus d'informations ci-dessous).

Déposez la collection avant l'importation

Vous pouvez utiliser le --drop pour supprimer toute collection existante portant le même nom que celle que vous essayez de créer/importer.

Imaginez que nous ayons un deuxième fichier, appelé pets2.json , avec le document suivant :

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

Voici ce qui se passe si j'importe ce document dans les pets collection en utilisant le --drop choix :

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

Sortie :

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.

Le message nous indique que la collection a été supprimée et qu'un document a été importé.

Jetons un coup d'œil à la collection :

db.pets.find()

Résultat :

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

Comme prévu, nos deux nouveaux documents sont les seuls de la collection.

Modes d'importation

Il existe différents modes d'importation que vous pouvez utiliser avec mongoimport . Ces modes déterminent ce qui se passe s'il existe déjà des documents correspondants dans la collection dans laquelle vous essayez d'importer.

Les modes sont les suivants :

Mode Description
insert C'est le mode par défaut. Ce mode insère les documents du fichier d'importation. Si un document correspondant existe déjà dans la collection, une erreur se produit. Un document correspondant est celui qui a le même ID unique (comme un _id correspondant champ) en tant que document dans le fichier d'importation.
upsert Remplace les documents existants dans la base de données par des documents correspondants du fichier d'importation. Tous les autres documents sont insérés.
merge Fusionne les documents existants qui correspondent à un document dans le fichier d'importation avec le nouveau document. Tous les autres documents sont insérés.
delete Supprime les documents existants dans la base de données qui correspondent à un document dans le fichier d'importation. Tout document non correspondant n'a aucun effet.

Voir Les modes d'importation de mongoimport pour des exemples de chaque mode.

Vérifiez 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 les commandes ?

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

Ne les exécutez pas depuis le mongo coquille.