結構:如何在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())
...
的蘭巴函數將生成主鍵爲您服務。