Имам проблем с актуализирането на документ в MongoDB, което включва добавяне към списък и актуализиране на някои полета, използвайки Pymongo.
За да обобщя, бих искал да:
- Добавете стойност към списъка a.
- Актуализирайте някои полета.
- Използване на единичен израз за актуализиране.
Опитах 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}
}