Reputation: 2174
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?
Upvotes: 5
Views: 2377
Reputation: 757
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()
.
Upvotes: 7