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.