【问题标题】:How can i change _id field in MongoDB Collection to User_id?如何将 MongoDB 集合中的 _id 字段更改为 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。 可能吗。请帮我。提前致谢。

【问题讨论】:

  • 如果您觉得答案有帮助,您可以点赞/接受。

标签: mongodb auto-increment database


【解决方案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 字段中拥有该值。 如果我把你的问题弄错了,请纠正我。

【讨论】:

    猜你喜欢
    • 2013-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-04
    • 1970-01-01
    相关资源
    最近更新 更多