MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Como converter uma string para ObjectId no driver nativo do nodejs mongodb?


com ObjectId (documento de driver nodejs)

Quando você tem uma string representando um ObjectId BSON (recebido de uma solicitação da web, por exemplo), você precisa convertê-lo em uma instância 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}
  );
};