$addToSet вместе с обновлением других полей?

У меня возникли проблемы с обновлением документа в MongoDB, которое включает добавление в список и обновление некоторых полей с помощью Pymongo.

Подводя итог, я хотел бы:

  1. Добавьте значение в список.
  2. Обновите некоторые поля.
  3. Использование одного оператора обновления.

Я пробовал 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}
}

person Qmage    schedule 31.03.2015    source источник


Ответы (1)