Search code examples
mongodbauto-incrementdatabase

How can i change _id field in MongoDB Collection to User_id?


I am new user for MongoDB Database. In MongoDb whatever insert into some collection defaultly one field is added that is _id field.

For Example:

db.users.insert({"User_id":"1","User_Name":"xxx","Address":"yyyy"})
db.users.find()

It shows

{ "_id" : ObjectId("528475fc326b403f580d2eba"), "User_id" : "1", "User_Name" : "xxx",Address" : "yyyy" }

I don't need _id field and i want to replace that _id field to User_id with auto increment values. Is it possible. Please help me. Thanks in advance.


Solution

  • _id field is really special in mongodb. This is your primary key there and there is no way you can have a document without it. Even if you are trying to insert the document without it, mongo will create it for you (as in your example). Moreover, you can not even modify _id field for you collection.

    But you can create a document with your own _id. So if you want you can do db.users.insert({"_id":"1","User_Name":"xxx","Address":"yyyy"}) \\why exactly 1 is a string?

    and remember that _id means user_id and also keep in mind that this _id should be unique

    Keep in mind that mongodb is not like sql. It does not have autoincrement keys (by this I mean that it is not that creators did not know how to do it, but just that you can leave pretty much without it), but you can achieve create something that would resemble the same behaviour.