首页 文章

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

提问于
浏览
8

我是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 回答

  • 13

    _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的东西 .

  • 1

    至于我可以理解你的问题是你想使用你的mongoDB内部_id作为你的自定义属性 . 例如,假设db包含用户标识并具有“_id,name,address ...”等属性,并且您希望在应用程序中将此_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字段中具有该值 . 如果我的问题出错,请纠正我 .

相关问题