【发布时间】:2013-01-24 08:20:11
【问题描述】:
我在 Mongo 中有这个对象:
mystuff = ListField(ReferenceField(Asset, dbref=True))
我有一个 Python 方法应该更新 Mongo 对象,在它的 mystuff Listfield 值前面加上一个给定的值。因为 Mongoengine 还没有办法将对象插入到列表中的某个点(并且有 made it a low priority 添加此功能),所以我尝试:
- 将当前列表的内容保存到一个临时变量(oldlist)
- 更新数据库条目,使用“pull_all”修饰符(这是mongoengine的一部分)清空mystuff列表
- update 再次更新数据库条目,使用 update(push) 将新添加的项目推送到 mystuff 列表中
- 再次更新数据库条目,使用“push_all”修饰符和oldlist变量将旧的东西推回mystuff列表。
似乎“pull_all”需要某种修饰符,但如果我能弄清楚它想要什么,我会很危险。
有人有什么想法吗?当然,理想的情况是向 update() 添加一个“insert_at”修饰符,但这不在我的掌控之中。边缘生活等。
【问题讨论】:
标签: python mongodb mongoengine