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.mongomim. Alguém pode confirmar?
var mongoose = require('mongoose');
var _id = mongoose.mongo.ObjectId("4eb6e7e7e9b7f4194e000001");
mongoose.Types.ObjectIde 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 Typesvs 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