J'utilise pilote natif de mongodb dans un environnement nodejs
et je dois convertir une chaîne id
en ObjectId pour l'utiliser dans mon requête de mise à jour, comment puis-je faire cela?
avec ObjectId ( documentation du pilote nodejs )
Lorsque vous avez une chaîne représentant un ObjectId BSON (reçue d'une requête Web, par exemple), vous devez la convertir en une instance ObjectId:
const {ObjectId} = require('mongodb'); // or ObjectID
// or var ObjectId = require('mongodb').ObjectId if node version < 6
const updateStuff = (id, doc) => {
// `ObjectId` can throw https://github.com/mongodb/js-bson/blob/0.5/lib/bson/objectid.js#L22-L51, it's better anyway to sanitize the string first
if (!ObjectId.isValid(s)) {
return Promise.reject(new TypeError(`Invalid id: ${id}`));
}
return collection.findOneAndUpdate(
{_id: ObjectId(id)},
{$set: doc},
{returnOriginal: false}
);
};
var {ObjectId} = require('mongodb'); // or ObjectID Not Working
comme mentionné par @caubub ne fonctionnera pas pour moi.
Mais lorsque j'utilise var ObjectID = require('mongodb').ObjectID; // convert string to ObjectID
dans mongodb, je suis alors en mesure de convertir une chaîne en ObjectId dans le lecteur natif de nodejs mongodb.
Pour une visite de référence à http://mongodb.github.io/node-mongodb-native/2.2/api/ObjectID.html