如何将 MongoDB 集合中的 _id 字段更改为 User_id?
Posted
技术标签:
【中文标题】如何将 MongoDB 集合中的 _id 字段更改为 User_id?【英文标题】:How can i change _id field in MongoDB Collection to User_id? 【发布时间】:2013-11-27 02:38:45 【问题描述】:我是 MongoDB 数据库的新用户。在 MongoDb 中,无论插入到某个集合中,默认都会添加一个字段,即 _id 字段。
例如:
db.users.insert("User_id":"1","User_Name":"xxx","Address":"yyyy")
db.users.find()
显示
"_id" : ObjectId("528475fc326b403f580d2eba"), "User_id" : "1", "User_Name" : "xxx",Address" : "yyyy"
我不需要 _id 字段,我想用自动增量值将该 _id 字段替换为 User_id。 可能吗。请帮我。提前致谢。
【问题讨论】:
如果您觉得答案有帮助,您可以点赞/接受。 【参考方案1】:_id
字段在 mongodb 中实际上是 special。这是您的主键,没有它您就无法拥有文档。即使您尝试在没有它的情况下插入文档,mongo 也会为您创建它(如您的示例中所示)。此外,您甚至不能为您的收藏修改_id
字段。
但是您可以使用自己的 _id 创建文档。所以如果你愿意,你可以db.users.insert("_id":"1","User_Name":"xxx","Address":"yyyy") \\why exactly 1 is a string?
记住_id
的意思是user_id
,还要记住这个_id
应该是唯一的
请记住,mongodb 不像 sql。它没有自动增量键(我的意思是不是创作者不知道怎么做,只是你几乎可以不用它),但你可以创建类似于the same behaviour 的东西。
【讨论】:
很遗憾,有关创建自动增量密钥的指南链接已损坏。create_index
函数呢?我可以将_id
设置为我想要的,但我似乎无法将_id
更改为student_id
真的没有办法吗?
这让我觉得是 Mongo 数据库的一个缺点【参考方案2】:
据我所知,您的问题是您想使用 mongoDB 内部 _id 作为自定义属性。例如,假设数据库包含用户身份并具有诸如“_id、名称、地址...”之类的属性,并且您希望在应用程序中将此 _id 的值用作 userId 以供外部参考。 因此,正如@SalvadorDali 所说,_id 字段在 mongoDB 中非常重要,没有它就没有文档。您所能做的就是让 db 通过它的默认 _id 存储值,但是您可以通过在 json 文件中应用这两个更改来使用自己的 User_id 访问外部。
"properties":
"userId":
"type": "string",
"id":"true",
"index":"true",
"description": "unique id of identity"
现在您存储任何唯一值,它使用默认 _id 存储在数据库中,并且您可以在 userId 字段中拥有该值。 如果我把你的问题弄错了,请纠正我。
【讨论】:
以上是关于如何将 MongoDB 集合中的 _id 字段更改为 User_id?的主要内容,如果未能解决你的问题,请参考以下文章