Estaba trabajando en un proyecto web Typescript que usaba MongoDB y ExpressJS . Usé una consulta de MongoDB para buscar y eliminar un documento de MongoDB usando el método HTTP DELETE . Durante la consulta de MongoDB, me confundí con un término llamado new y ObjectID . Aquí están los fragmentos de código:
//Without new Keyword const resData: DeleteWriteOpResultObject = await data .collection("posts") .deleteOne({ _id: ObjectID(req.params.id), }); //With new keyword const resData: DeleteWriteOpResultObject = await data .collection("posts") .deleteOne({ _id: new ObjectID(req.params.id), });Ambos funcionan bien como esperaba. Pero quiero saber cuál es la diferencia entre estos dos . ¿Hay alguna diferencia relacionada con la memoria o algo más?
Mientras buscaba en Google, también obtuve un artículo. Adjunto el enlace aquí .
De acuerdo con la documentación oficial del controlador , ObjectId es una clase, lo que significa que debe usar new para crear una instancia.
Sin embargo, observando la implementación real, permitirá que se la llame como una función normal, en cuyo caso return new ObjectId(...) (por lo que se instanciará automáticamente).