如何从十六进制字符串在 Mongoose 4.0.x 中创建 ObjectId?

swo*_*ger 3 javascript mongoose mongodb node.js objectid

mongoose.mongo.Types.ObjectId 没有 fromString 或 fromHexString 函数。似乎 new mongoose.mongo.Types.ObjectId(hexString) 也不会创建对象 ID。

var id = new mongoose.Types.ObjectId(hexString);
db.Record.find({_id:id }, function (err, campaign){
    if(err) console.log(err);
    callback(campaign);
});
Run Code Online (Sandbox Code Playgroud)

Bri*_*len 5

我终于找到了你要找的方法。本mongoose.Types.ObjectId类有一个叫做静态函数createFromHexString,该函数返回的一个实例ObjectId

var id = mongoose.Types.ObjectId.createFromHexString(hexString);
db.Record.findOne({_id: id}, function (err, campaign){
    if(err) console.log(err);
    callback(campaign);
});
Run Code Online (Sandbox Code Playgroud)