我是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。 可能吗。请帮我。提前谢谢。
答案 0 :(得分:13)
_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字段中具有该值。 如果我的问题出错,请纠正我。