【发布时间】:2015-03-31 02:35:41
【问题描述】:
我在使用 Pymongo 更新 MongoDB 中涉及添加到列表和更新某些字段的文档时遇到问题。
总而言之,我想:
- 向 a 列表添加一个值。
- 更新一些字段。
- 使用单个更新语句。
我尝试了两种方法,但都不起作用:
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}
}
【问题讨论】: