Я пытаюсь обновить свою коллекцию
Для одиночного объекта необходимо обновить статус и время обновления.
Введите идентификатор объекта как id
новый статус как текущий status
Условие Если new status
отличается от status
в БД, тогда необходимо $push
new status
и timestamp
в массив activity_log
. И обновите обновление updated_time
и status
записи.
Если new status
и предыдущий статус совпадают, то updated_time
будет обновлено.
Возможно ли сделать это в pymon go с помощью одного обновления?
collection.update({
'_id': ObjectId(id),
}, {
'$cond': {
'if': {
'status': {
'$ne': current_status
}
},
'then': {
'$push': {
'activity_log': {
'status': current_status,
'changed_time': datetime.now()
}
}
},
'else': None
},
'$set': {
'status': current_status,
'updated_time': datetime.now()
}
})