Я пытаюсь вставить запись в mongodb, но я не хочу дублирования, поэтому я использую команду update
с upsert=true
import pymongo
client = pymongo.MongoClient(settings.MONGO_DB_URI)
db = self.client[settings.MONGO_DB_NAME]
filter = {
'my_id': '1234',
'name': 'alok'
}
record = {
'my_id': '1234',
'name': 'alok',
'marks': 26
}
status = db['mycollection'].update(filter, {'$setOnInsert': record}, upsert=True)
print('id is ', status['my_id']) # this will not work but I want such behaviour
Этот код будет вставлять запись, только если не существует существующей записис соответствующими значениями фильтра.Таким образом, есть два случая:
Он будет вставлять запись
Он не будет вставлять запись, если уже существует
В обоих случаях я хочу получить my_id
.Как я могу получить my_id при выполнении команды обновления?