$addToSet, заедно с актуализиране на други полета?

Имам проблем с актуализирането на документ в MongoDB, което включва добавяне към списък и актуализиране на някои полета, използвайки Pymongo.

За да обобщя, бих искал да:

  1. Добавете стойност към списъка a.
  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)