У меня возникли проблемы с обновлением документа в MongoDB, которое включает добавление в список и обновление некоторых полей с помощью Pymongo.
Подводя итог, я хотел бы:
- Добавьте значение в список.
- Обновите некоторые поля.
- Использование одного оператора обновления.
Я пробовал 2 метода, но оба не работают:
key = {'username':'user1'}
user_detail = {
'name':{'first':'Marie', 'last':'Bender'},
'items':{'$addtoset':{'cars':'BMW'}}
}
user_detail2 = {
'name':{'first':'Marie', 'last':'Bender'},
'$addtoset':{'items.cars':'BMW'}
}
mongo_collection.update(key, user_detail, upsert=True)
mongo_collection.update(key, user_detail2, upsert=True)
сообщение об ошибке: поле $addToSet с префиксом доллара ($) в $addToSet недопустимо для хранения.
Мой предполагаемый результат:
До:
{
'username':'user1',
'item': {'cars':['Merc','Ferrari'],'house':1}
}
Предназначено после:
{
'username':'user1',
'name': {'first':'Marie', 'last':'Bender'},
'item': {'cars':['Merc','Ferrari','BMW'],'house':1}
}