0
votes

Importer json Mongodb

J'ai donc importé un fichier json avec

mongoimport -d mydb -c mycollection --jsonArray le problème est que _id est stocké sous forme de chaîne dans Db et non comme ObjectID

Comme ça

 entrez la description de l'image ici

Ainsi, lorsque j'essaie d'exécuter la requête findbyId / findOne ({_ id: id}), j'obtiens une valeur nulle en conséquence J'ai essayé la solution avec findOne ({_id: new ObjectID (id)} mais cela n'a pas fonctionné pour moi

PS: le _id dans le fichier json est également une chaîne y a-t-il un moyen de convertir _id de chaîne en objectId ou toute autre solution

Désolé si la question est en double


3 Réponses :


2
votes

Essayez ces commandes pour voir si cela fonctionne

mongoimport --db dbName --collection collectionName --file fileName.json --jsonArray

mongoimport --db test --collection user --drop --file /path/user.json


5 commentaires

Obtenir le même résultat


Le fichier json que j'utilise [{"_id": "5ad73dc9e17caf0014c5485f", "product": "5ad738a4e17caf0014c53922", "quantity": {"unit": "g", "value": 120}}, {"_id ":" 5ad73dc9e17caf0014c54863 "," produit ":" 5aa1633d7e13440014db2a0f "," quantité ": {" unit ":" pièce (petite) "," valeur ": 1}}]


il n'y a pas d'erreurs mais j'obtiens toujours le _id sous forme de chaîne et non objectId


Essayez de supprimer _id car mongo génère automatiquement un identifiant pour vous


je ne peux pas supprimer le _id cz il est lié à d'autres collections



2
votes

Vous pouvez changer le type de données. Essayez-le.

db.mycollection.find().forEach(function(element){
  element._id = ObjectId(element._id);
  db.mycollection.save(element);
})


1 commentaires

Ingrédient.Find (fonction (erreur, ingrédients) {if (err) {console.log (err);} else {ingrédients.foreach (élément => {element._id = objetid (élément._id); laisser ingrédient = nouveau ingrédient (élément); ingrédient .Save () .Chen (ing => {}) .Catch (err => {});}); res.json (ingrédients);}});



1
votes

vous pouvez ouvrir le fichier .json dans l'éditeur de texte comme vsCode et remplacer id par objectId (id) par regex comme ceci:

 entrez la description de l'image ici

alors trouvez: _id: (". *")

et remplacer par: _id: ObjectId ($ 1)

après cela, importez vos données dans la base de données


0 commentaires