There’s this project I am working on. This is like a social network where we can have users, posts, pictures etc and then this problem came up. We are used to Mysql and the “almost magical” auto-increment field and now we cannot count on it anymore. I know the _id object in Mongo gives an easy way for identifying a document as it guarantee uniqueness. But the key is not user friendly and that’s what we need, so we can make urls like:
http://website.com/posts/{post_id}
http://website.com/{user_id}
I developed a solution but I don’t think this is the best way of doing this. I first create a mysql table with only one column. This column stores the user_id and it’s an auto-increment field. For every new record on mongo I insert a new row in this mysql table and get the user_id with “LAST_INSERT_ID” function, now I can insert my data in my mongo collection with a numeric ID. And other benefit is that I can erase my mysql table let’s say, after a million rows because the id’s are already stored in mongo.
Am I doing it wrong?
You can also create the id’s in Mongo instead of MySQL, …here’s some documentation and articles on how to achieve it
http://www.mongodb.org/display/DOCS/How+to+Make+an+Auto+Incrementing+Field
http://shiflett.org/blog/2010/jul/auto-increment-with-mongodb