我的模型中有以下django类:
class mongoMedia(Document)
....
category = StringField()
hough_distance = DictField()
在用一些数据填充集合后,我需要更新'hough_distance'字段 我尝试过类似的东西:
media_object = mongoMedia.objects.get(sql_id=100)
media_object.update(set__category='catX') #it works
media_object.update(set__hough_distance={'k1': v1, 'k2': v2}) #does not work
第二次更新显然不起作用,因为'hough_distance'未在我的'media_object'的'_fields'中列出。错误是:
InvalidQueryError: Cannot resolve field "hough_distance"
我也尝试过:
mongoMedia._get_collection().update({'id': media_obj.id }, {'$set': {'hough_distance.%s' % (hough_distance.distance): object_compare} } )
不保存集合中的任何内容。
虽然这适用于mongodb shell:
db.mongo_media.update( { '_id': media_object._id }, { $set: { 'hough_distance': { 'k1': v1} } } )
如何在有效的Django语法中“翻译”上述内容以及为什么DictField()未在对象'_fields'属性中列出?
非常感谢!
编辑:
让我换一种说法: 如何在Django中更新MongoDB字典?