Je comprends que get_or_create
est maintenant dépréciée en faveur de l'utilisation upsert
, mais comment puis-je faire update_one
de retourner l'objet plutôt le nombre d'objets modifiés, et puis je viens de récupérer un objet si je Vous ne voulez rien mettre à jour?MongoEngine: Remplacement get_or_create avec upsert/update_one
par exemple.
Model.objects.get_or_create(first_name='John', last_name='Potter', age=40)
# assuming that first_name + last_name + age are enough to uniquiely indentify a person
renvoie un objet Modèle (un nouvel objet s'il n'existe pas et un objet existant s'il l'est). Quel serait l'équivalent de cela en utilisant la nouvelle méthode?
Model.objects(first_name='John', last_name='Potter', age=40).update_one(upsert=True)
# returns number of objects (1)
Model.objects(first_name='John', last_name='Potter', age=40).update_one(set__first_name='John', set__last_name='Potter', set__age=40,upsert=True)
# returns number of objects (1)
est-il un moyen de faire revenir l'objet, et qu'il se comporte exactement comme get_or_create
?
Je ne pouvais pas trouver comment faire cela dans le documentation
Merci pour la réponse. Mais avez-vous une idée de la raison pour laquelle un objet '' QuerySet 'n'a pas d'attribut' modify''? – confused00
Oh, il semble que la commande 'modify' a été rendue disponible depuis la version 0.9, mais la dernière version de pip semble être 0.8.7 – confused00
Vous devrez installer à partir du maître via pip. Voir: http://stackoverflow.com/questions/20101834/pip-install-from-github-repo-branch – Ross