App deployed on uses ObjectID instead of String _id


While the app on localhost uses the default String _id the deployed app insists on creating ObjectID() type ids (and then runs into trouble). I didn’t write to the db with any other software, it’s the meteor app that’s behaving differently. And I had it working on the deployed app just 2 days ago.

The source:

The deployed app:


I figured it out.

Mongo.upsert() behaves differently on different versions of Mongo. When inserting a new item into the collection it may or may not adhere to the Meteor default of using the random string IDs. Using insert() and update() instead of upsert() solved this.