如何将MongoDB Collection中的_id字段更改为User_id?

时间:2013-11-14 07:11:05

标签: mongodb auto-increment database

我是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。 可能吗。请帮我。提前谢谢。

2 个答案:

答案 0 :(得分:13)

在mongodb中,

_id字段确实是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。它没有自动增量键(我的意思是,不是创作者不知道怎么做,而只是你可以在没有它的情况下离开),但是你可以创造出类似于{{3}的东西。 }。

答案 1 :(得分:1)

至于我能理解你的问题是你想使用你的mongoDB内部_id作为你的自定义属性。例如,假设db包含用户标识并具有" _id,name,address ..."等属性。并且您希望在应用程序中将此_id值用作userId以进行外部参考。 所以@SalvadorDali说_id字段在mongoDB中非常重要,如果没有它,你就无法拥有一个文件。您所能做的就是让db存储该值的默认_id,但您可以使用自己的User_id通过在json文件中应用这两个更改来访问外部。

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

现在您存储任何唯一值,它使用默认_id存储在数据库中,在外部您可以在userId字段中具有该值。 如果我的问题出错,请纠正我。