javascript - Meteor returns invalid hexadecimal string error trying to create ObjectID? - Stack Overflow

I'm inserting some stuff into the database and updating it elsewhere using jQuery (give me a break

I'm inserting some stuff into the database and updating it elsewhere using jQuery (give me a break, I'm new), after which I need to be able to click it and display some UI stuff, which means getting the ID. So I set the ID variable and then try and and then try and use it in the click event:

...

"click .message-entry" : function (e) {
    var id = this._id || new Meteor.Collection.ObjectID(newMessageId);
    Session.set('singleMessageId', id);
},

...

Should work in principle, however I get the following error returned:

Uncaught Error: Invalid hexadecimal string for creating an ObjectID

A breakpoint reveals that the ID is both a string and the ID of the newly inserted document. What could be going wrong here?

I'm inserting some stuff into the database and updating it elsewhere using jQuery (give me a break, I'm new), after which I need to be able to click it and display some UI stuff, which means getting the ID. So I set the ID variable and then try and and then try and use it in the click event:

...

"click .message-entry" : function (e) {
    var id = this._id || new Meteor.Collection.ObjectID(newMessageId);
    Session.set('singleMessageId', id);
},

...

Should work in principle, however I get the following error returned:

Uncaught Error: Invalid hexadecimal string for creating an ObjectID

A breakpoint reveals that the ID is both a string and the ID of the newly inserted document. What could be going wrong here?

Share Improve this question asked Oct 19, 2015 at 19:55 stykestyke 2,1742 gold badges27 silver badges54 bronze badges 4
  • (give me a break, I'm new) ?? So you are aware this may be the wrong approach, but feel it's more important to hack this together than possibly be shown a better approach? Inserting/updating items in the db and displaying them is a trivial task when you follow the established patterns. – JeremyK Commented Oct 19, 2015 at 20:44
  • Anyway, what is the newMessageId variable you are passing to Meteor.Collection.ObjectID? – JeremyK Commented Oct 19, 2015 at 20:45
  • Also the api is now new Mongo.ObjectID([hexString]) – JeremyK Commented Oct 19, 2015 at 20:50
  • @JeremyK it's for a personal project that I need to finish asap. The variable is the ID string of the inserted document as mentioned in the question. – styke Commented Oct 19, 2015 at 21:32
Add a ment  | 

1 Answer 1

Reset to default 7

By default, Meteor doesn't use Mongo's hexadecimal object IDs. You could either tell Meteor to use Mongo style IDs by passing {idGeneration: 'MONGO'} into new MongoCollection(), or (probably more easily) just use newMessageID instead of new Mongo.ObjectID(newMessageID), if the value of newMessageID is the _id returned by insert().

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

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

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

关注微信