Respostas:
Você pode fazer assim:
var mongoose = require('mongoose');
var id = mongoose.Types.ObjectId('4edd40c86762e0fb12000003');
Você pode fazer assim:
var mongoose = require('mongoose');
var _id = mongoose.mongo.BSONPure.ObjectID.fromHexString("4eb6e7e7e9b7f4194e000001");
EDIT: novo padrão tem fromHexString em vez de fromString
mongoose.mongo
mim. Alguém pode confirmar?
var mongoose = require('mongoose');
var _id = mongoose.mongo.ObjectId("4eb6e7e7e9b7f4194e000001");
mongoose.Types.ObjectId
e mongoose.mongo.ObjectId
? As propriedades do objeto do mangusto são diferentes, mas podem estar fazendo referência ao mesmo método abaixo. Por favor, comente sobre os métodos subjacentes sobre Types
vs mongo
.
Não consegui resolver esse método (reconhecidamente não procurei por muito tempo)
mongoose.mongo.BSONPure.ObjectID.fromHexString
Se o seu esquema espera que a propriedade seja do tipo ObjectId, a conversão está implícita, pelo menos isso parece ser o caso em 4.7.8.
Você pode usar algo assim, no entanto, o que dá um pouco mais de flexibilidade:
function toObjectId(ids) {
if (ids.constructor === Array) {
return ids.map(mongoose.Types.ObjectId);
}
return mongoose.Types.ObjectId(ids);
}
Basta ver o snippet de código abaixo se você estiver implementando uma API REST por meio de express e mangusto. (Exemplo para ADD)
....
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 que ajude