Respuestas:
Puedes hacerlo así:
var mongoose = require('mongoose');
var id = mongoose.Types.ObjectId('4edd40c86762e0fb12000003');
Puedes hacerlo así:
var mongoose = require('mongoose');
var _id = mongoose.mongo.BSONPure.ObjectID.fromHexString("4eb6e7e7e9b7f4194e000001");
EDITAR: El nuevo estándar tiene fromHexString en lugar de fromString
mongoose.mongo
mí. ¿Alguien puede confirmar?
var mongoose = require('mongoose');
var _id = mongoose.mongo.ObjectId("4eb6e7e7e9b7f4194e000001");
mongoose.Types.ObjectId
y mongoose.mongo.ObjectId
? Las propiedades del objeto de la mangosta son diferentes, pero pueden estar haciendo referencia al mismo método debajo. Por favor comente sobre los métodos subyacentes en Types
contra mongo
.
No pude resolver este método (es cierto que no busqué mucho)
mongoose.mongo.BSONPure.ObjectID.fromHexString
Si su esquema espera que la propiedad sea de tipo ObjectId, la conversión es implícita, al menos este parece ser el caso en 4.7.8.
Sin embargo, podría usar algo como esto, que le da un poco más de flexibilidad:
function toObjectId(ids) {
if (ids.constructor === Array) {
return ids.map(mongoose.Types.ObjectId);
}
return mongoose.Types.ObjectId(ids);
}
Solo vea el fragmento de código a continuación si está implementando una API REST a través de express y mangosta. (Ejemplo para AGREGAR)
....
exports.AddSomething = (req,res,next) =>{
const newSomething = new SomeEntity({
_id:new mongoose.Types.ObjectId(), //its very own ID
somethingName:req.body.somethingName,
theForeignKey: mongoose.Types.ObjectId(req.body.theForeignKey)// if you want to pass an object ID
})
}
...
Espero eso ayude