Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Meteor returns invalid hexadecimal string error trying to create ObjectID?

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?

like image 490
styke Avatar asked Oct 19 '15 19:10

styke


1 Answers

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().

like image 70
Dean Brettle Avatar answered Sep 20 '22 18:09

Dean Brettle