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

爱⌒轻易说出口 提交于 2019-12-10 02:02:23

问题


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.


回答1:


_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.




回答2:


As for as I can understand your problem is that you want to use your mongoDB internal _id as your custom attribute. For example suppose the db contain the user Identity and having attributes like "_id , name , address ..." and you want to use this _id's value in your application as userId for external reference. So as @SalvadorDali said _id field is really important in the mongoDB and you can not have a document without it. All you can do is let the db store the value by it's default _id but you can access outside using your own User_id by applying these two changes in your json file.

"properties": {
    "userId":{
      "type": "string",
      "id":"true",
      "index":"true",
      "description": "unique id of identity"
    }
}

now you store any unique value, it is stored in the db using default _id and outside you can have that value in userId field. Correct me if i got your question wrong.



来源:https://stackoverflow.com/questions/19971670/how-can-i-change-id-field-in-mongodb-collection-to-user-id

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!