struttura:Come rimuovere un elemento da un elenco (ListField) per id in MongoEngine?
{title: 'test', comments: [{id:1, title: ''}, {id: 8, title: ''}]}
ho bisogno rimuovere il id = 8 articolo, grazie.
struttura:Come rimuovere un elemento da un elenco (ListField) per id in MongoEngine?
{title: 'test', comments: [{id:1, title: ''}, {id: 8, title: ''}]}
ho bisogno rimuovere il id = 8 articolo, grazie.
Hi è possibile estrarre gli elementi da un array:
https://github.com/hmarr/mongoengine/blob/master/tests/queryset.py#L1374
See $ tiro: http://www.mongodb.org/display/DOCS/Updating#Updating-%24pull
È necessario utilizzare $ tirare operatore qui:
http://www.mongodb.org/display/DOCS/Updating#Updating-%24pull
db.collection.update({'title':'test'},{$pull : { 'comments' : { 'id' : 8 }});
Ecco un esempio dell'operatore di pull, utilizzando flask_mongoengine e assumendo che la classe dell'oggetto principale si chiami Blog e che i commenti siano EmbeddedDocuments all'interno di Blog.
Blog.objects(id=blog_id).update_one(pull__comments___id=comment_id)
Notare la sottolineatura tripla nei commenti id. Questo perché se si vuole chiavi primarie sui commenti, è necessario aggiungere uno nella vostra dichiarazione di modello come questo:
class Comment(db.EmbeddedDocument):
_id = db.ObjectIdField(primary_key=True, default=lambda: ObjectId())
...
La funzione Lamba genererà le chiavi primarie per voi.