Если вы хотите вручную изменить значение «_id», вы можете сделать это, изменив значение _id в возвращаемом документе. Вы можете сделать это аналогично тому, как вы предложили в своем вопросе. Однако я не думаю, что этот подход рекомендуется.
curs = db.admin_collection.find().sort( [("_id", -1)] ).limit(1)
for document in curs:
document['_id'] = str(int(document['_id']) + 1)
collection.insert(document)
Как правило, не рекомендуется вручную создавать свои собственные идентификаторы. Эти значения должны быть уникальными, и нет гарантии, что str (int (document ['_ id]) + 1) всегда будет уникальным.
Вместо этого, если вы хотите дублировать документ, вы можете удалить '_id' и вставить документ.
curs = db.admin_collection.find().sort( [("_id", -1)] ).limit(1)
for document in curs:
document.pop('_id',None)
collection.insert(document)
Это вставляет документ и позволяет mongo генерировать уникальный идентификатор.