MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Come convertire una stringa in ObjectId nel driver nativo nodejs mongodb?

con ObjectId (documento driver nodejs)

Quando hai una stringa che rappresenta un ObjectId BSON (ricevuto da una richiesta Web, ad esempio), devi convertirlo in un'istanza 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}
  );
};