gpt4 book ai didi

python - 如何在 Pymongo 中每次插入时自动增加 id?

转载 作者:可可西里 更新时间:2023-11-01 09:57:25 24 4
gpt4 key购买 nike

我正在使用 pymongo 在 mongodb 中插入文档。这是 router.py 文件的代码

    temp = db.admin_collection.find().sort( [("_id", -1)] ).limit(1)
for doc in temp:
admin_id = str(int(doc['_id']) + 1)


admin_doc ={
'_id' : admin_id,
'question' : ques,
'answer' : ans,
}
collection.insert(admin_doc)

我应该怎么做才能在每次插入时将 _id 递增 1。

最佳答案

这似乎不是一个好主意,但如果你真的想完成它,你可以尝试如下设置。

它应该在具有单台服务器的低流量应用程序中工作得足够好,但我不会在复制或分片环境中尝试任何类似的事情,或者如果您执行大量插入。

创建单独的集合来处理 id 序列:

db.seqs.insert({
'collection' : 'admin_collection',
'id' : 0
})

每当你需要插入新文档时,使用类似这样的东西:

def insert_doc(doc):
doc['_id'] = str(db.seqs.find_and_modify(
query={ 'collection' : 'admin_collection' },
update={'$inc': {'id': 1}},
fields={'id': 1, '_id': 0},
new=True
).get('id'))

try:
db.admin_collection.insert(doc)

except pymongo.errors.DuplicateKeyError as e:
insert_doc(doc)

关于python - 如何在 Pymongo 中每次插入时自动增加 id?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19524725/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com