J'ai donc importé un fichier json avec
mongoimport -d mydb -c mycollection --jsonArray
Comme ça
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 :
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
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
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); })
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);}});
stackoverflow.com/questions/7825700/… < / a>