sql >> Base de Datos >  >> NoSQL >> MongoDB

¿Cómo convertir una cadena a ObjectId en el controlador nativo nodejs mongodb?

con ObjectId (documento del controlador nodejs)

Cuando tiene una cadena que representa un ObjectId de BSON (recibida de una solicitud web, por ejemplo), debe convertirla en una instancia de 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}
  );
};