我是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 回答
_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的东西 .
至于我可以理解你的问题是你想使用你的mongoDB内部_id作为你的自定义属性 . 例如,假设db包含用户标识并具有“_id,name,address ...”等属性,并且您希望在应用程序中将此_id的值用作userId以进行外部引用 . 所以@SalvadorDali说_id字段在mongoDB中非常重要,如果没有它,你就无法拥有一个文件 . 你所能做的只是让db存储它的默认值_id,但你可以通过在json文件中应用这两个更改,使用你自己的User_id访问外部 .
现在您存储任何唯一值,它使用默认_id存储在数据库中,在外部您可以在userId字段中具有该值 . 如果我的问题出错,请纠正我 .