我正在尝试更新我的收藏
对于单,对象需要更新状态和更新时间。
输入对象 id 作为id
新状态作为当前status
Condition 如果与in DBnew status
不同status
,则需要$push
new status
和timestamp
成activity_log
数组。并更新记录的更新updated_time
和status
。
如果new status
和之前的状态相同,那么updated_time
将被更新。
是否可以在 pymongo 中使用单一更新来做到这一点?
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()
}
})