最近在使用mongodb数据库时我手动导入数据库后发现自增id没有变化,一直在找文档,结果发现mongodb 数据有个自访问的数据库,专门记录自增id和每个数据库表的字段和字段类型

{
"_id" : ObjectId("60d208b25a0f3d1157441810"),
"name" : "django_migrations",
"auto" : {
"field_names" : [
"id"
],
"seq" : NumberInt(22)
},
"fields" : {
"app" : {
"type_code" : "string"
},
"applied" : {
"type_code" : "date"
},
"id" : {
"type_code" : "int"
},
"name" : {
"type_code" : "string"
}
}
}
__schema__就是这个数据库表记录自增id的值
name:这个字段是表名称
auto:里面有两个字段,一是就是自动id的值
fields:表的字段与类型
如果想改自增id的数值,可以直接修改这个表的id值,但是我实际用时发现由于__它不能用用属性的方法(.)获取,需要用下面的方法
# Requires pymongo 3.6.0+
from pymongo import MongoClient
client = MongoClient("mongodb://host:port/")
database = client["testMongo"]
collection = database["__schema__"]
query = {}
cursor = collection.find(query)
try:
for doc in cursor:
print(doc)
finally:
client.close()

这篇博客介绍了在MongoDB中如何管理和修改自增ID。当你手动导入数据后,发现自增ID没有变化,这是因为MongoDB有一个隐藏的__schema__集合,用于记录每个表的自增ID和字段信息。要修改自增ID,你需要直接更新__schema__集合中的seq字段,但需要注意不能直接通过属性方法访问,而应该使用查询和更新操作。示例代码展示了如何使用PyMongo库来查找和打印__schema__集合的内容。
676

被折叠的 条评论
为什么被折叠?



