结构:如何在MongoEngine中通过id从列表中删除一个项目(ListField)?
{title: 'test', comments: [{id:1, title: ''}, {id: 8, title: ''}]}
我需要取出ID = 8项,谢谢。
结构:如何在MongoEngine中通过id从列表中删除一个项目(ListField)?
{title: 'test', comments: [{id:1, title: ''}, {id: 8, title: ''}]}
我需要取出ID = 8项,谢谢。
您需要使用$拉动运营商的位置:
http://www.mongodb.org/display/DOCS/Updating#Updating-%24pull
db.collection.update({'title':'test'},{$pull : { 'comments' : { 'id' : 8 }});
下面是拉运算符的一个示例,使用flask_mongoengine并假设父对象类称为Blog,并且注释是Blog中的EmbeddedDocuments。
Blog.objects(id=blog_id).update_one(pull__comments___id=comment_id)
注意注释id中的三重下划线。这是因为,如果你想在评论主键,您需要添加一个模型中的声明是这样的:
class Comment(db.EmbeddedDocument):
_id = db.ObjectIdField(primary_key=True, default=lambda: ObjectId())
...
的兰巴函数将生成主键为您服务。