Python 更新查询时出错:AttributeError(“unicode&”x27;对象没有属性子类型

Python 更新查询时出错:AttributeError(“unicode&”x27;对象没有属性子类型,python,mongodb,pymongo,Python,Mongodb,Pymongo,我的订单结构如下: {u'order_id': 12341, u'status_history': [{u'reason': u'', u'status': u'2000', u'time': datetime.datetime(2013, 7, 31, 11, 52, 47)}, {u'reason': u'', u'stat

我的订单结构如下:

{u'order_id': 12341,
u'status_history': [{u'reason': u'',
                      u'status': u'2000',
                      u'time': datetime.datetime(2013, 7, 31, 11, 52, 47)},
                    {u'reason': u'',
                     u'status': u'6020',
                     u'time': datetime.datetime(2013, 7, 31, 11, 59, 8)},
                    ]
}
我要更新记录。我的问题是:

problem_index = 1 # int
db.order.update({'order_id':order_id},
                 {'$set':{'status_history.%s' % problem_index : edited_item}}
)
结果:

AttributeError("'unicode' object has no attribute 'subtype'",)

为什么?

哦..递归结构。需要更多的关注。 我正在保存最新版本:

last_item  = edited_item
# Need last_item  = copy.copy(edited_item)
if edited_item.has_key('previous versions'):
    edited_item['previous versions'].append(last_item)

我试过你的查询,效果不错。你的
编辑的_项是什么?例如:
{u'status':u'4200',u'problemModCompensation':0,u'modified_field':{},u'problemMod':0,'previous versions':[{…}],'editor':{'username':u'Admin','u id':ObjectId('51cc42b10904e7fa4182e06c')}