Tengo un problema extraño con isValidObjectID() en mongoose, que apareció después de que agregué TypeScript a mi proyecto Node y, como resultado, tuve que actualizar mongoose y obligar a mongoose a usar una dependencia mongodb actualizada anulándola en package.json
"overrides": { "mongoose": { "mongodb": "^4.3.0" }
Después de hacer eso, todas mis pruebas que involucraban isValidObjectID() comenzaron a fallar. Estoy bastante seguro de que lo que se pasa a isValidObjectID() es una identificación de objeto mongodb válida, pero aún así devuelve falso.
import { isValidObjectId, Types } from "mongoose"; isValidObjectId('61cc6d8676a69c41fd3408ea'); // returns false isValidObjectId(new Types.ObjectId('61cc6d8676a69c41fd3408ea')); // returns false
Incluso probé algunos de los ejemplos de la documentación que se supone que devuelven verdadero, ¡pero todos devuelven falso!
isValidObjectId(new Types.ObjectId()); // returns false! isValidObjectId('0123456789ab'); // returns false isValidObjectId(6); // returns false
mientras que de acuerdo con la documentación, todos deberían volver verdaderos.
Estoy usando mongoose versión 6.1.9, y debido a la anulación de package.json, mongoose está usando mongodb versión 4.3.1
aparentemente esto fue un error en mongoose 6.1.9 actualizado a mongoose 6.2.0 y ahora está solucionado