javascript - How to create ObjectId in Mongoose 4.0.x from Hex string? - Stack Overflow

mongoose.mongo.Types.ObjectId does not have fromString or fromHexString functions.It seems that new mo

mongoose.mongo.Types.ObjectId does not have fromString or fromHexString functions. It seems that new mongoose.mongo.Types.ObjectId(hexString) does not create an object id either.

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

mongoose.mongo.Types.ObjectId does not have fromString or fromHexString functions. It seems that new mongoose.mongo.Types.ObjectId(hexString) does not create an object id either.

var id = new mongoose.Types.ObjectId(hexString);
db.Record.find({_id:id }, function (err, campaign){
    if(err) console.log(err);
    callback(campaign);
});
Share Improve this question asked Apr 28, 2015 at 16:40 swoggerswogger 1,1191 gold badge14 silver badges30 bronze badges 4
  • And what's hexString? ObjectId generally accepts hexadecimal strings ? – adeneo Commented Apr 28, 2015 at 16:43
  • 2 I would venture to guess that your problem isn't that campaign is null, but rather that it's returning an array and you're trying to access the properties of the document against the array, not a single document. Change your query to use findById. If that's not the case, what's the value of id before the query is executed? – Brian Shamblen Commented Apr 28, 2015 at 17:56
  • returns empty array. Tired find one and findById still no success. – swogger Commented Apr 29, 2015 at 10:20
  • @adeneo - hex string: '553f8a4286f5c759f36f8e5b' – swogger Commented Apr 29, 2015 at 10:21
Add a ment  | 

1 Answer 1

Reset to default 6

I finally found the method you're looking for. The mongoose.Types.ObjectId class has a static function called createFromHexString, which returns an instance of an ObjectId.

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

发布者:admin,转转请注明出处:http://www.yc00.com/questions/1745312600a4622070.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信