MongoEngine删除嵌套的嵌入式文件?

时间:2016-05-03 17:09:59

标签: python mongoengine

我有一个带有嵌入式文档的集合,它有一个嵌入文档列表,需要能够删除alert_list index [x],但是无法创建一个有效的pull命令。这是我的模型结构:

class Alert(medb.EmbeddedDocument):
    name = medb.StringField(default = 'new alert')

class Sensor(medb.EmbeddedDocument):
    name = medb.StringField(default='')
    alert_list = medb.ListField(medb.EmbeddedDocumentField(Alert), default=Alert)

class SiteConfig(medb.Document):
    name = medb.StringField(default = 'name')
    sensordict = medb.MapField(medb.EmbeddedDocumentField(Sensor))


#delete alert_item #2 for sensordict['99']
SiteConfig.objects(id=siteid).update_one(pull__  ????? what goes here???

我可以像这样在pymongo中做这件事(而且效果很好):

#load site into pymongo
pysite = pydb.db.SiteConfig.find_one({'_id': ObjectId(siteid)})
#delete the alert
del pysite['sensordict'][sensorid]['alert_list'][alertindex]
#save modified Site back to db
pydb.db.SiteConfig.replace_one({'_id': ObjectId(siteid)}, pysite, upsert=True)

但是如果可能的话,更愿意使用MongoEngine。 - 有什么建议? 谢谢 比尔

0 个答案:

没有答案