16

我是 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。是否可以。请帮我。提前致谢。

4

2 回答 2

22

_id字段在 mongodb中真的很特别。这是您的主键,没有它您就无法拥有文档。即使您尝试在没有它的情况下插入文档,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。它没有自动增量键(我的意思是不是创作者不知道怎么做,只是你几乎可以不用它),但你可以实现创建类似于相同行为的东西。

于 2013-11-14T07:43:45.347 回答
2

至于我能理解你的问题是你想使用你的 mongoDB 内部 _id 作为你的自定义属性。例如,假设数据库包含用户身份并具有诸如“_id、名称、地址...”之类的属性,并且您希望在应用程序中将此 _id 的值用作 userId 以供外部参考。因此,正如@SalvadorDali 所说,_id 字段在 mongoDB 中非常重要,没有它就没有文档。您所能做的就是让数据库通过它的默认 _id 存储值,但是您可以通过在 json 文件中应用这两个更改来使用您自己的 User_id 访问外部。

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

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

于 2016-05-16T04:03:04.543 回答