oui, le code ci-dessus fonctionne parfaitement bien. Je sais maintenant où était mon erreur. Je voulais le faire à l'épreuve des balles, alors j'ai pensé qu'il serait préférable d'utiliser save() sur la DBCollection à la fin et de sauvegarder explicitement la liste de courses DBObject :
shoppingLists.save( shoppingList );
J'ai maintenant lu dans un autre forum que les objets que vous récupérez de la base de données ne sont alors pas synchronisés avec la base de données par la suite (cela me semble logique maintenant :) ). J'ai donc écrasé les modifications moi-même à chaque fois. Après avoir supprimé la ligne ci-dessus, cela a fonctionné :)
Donc une règle importante :lorsque vous mettez à jour votre DBCollection
– ceci est envoyé directement à la base de données ! – ne pas enregistrer un DBObject
que vous avez interrogé avant la mise à jour ! Cela écrasera votre mise à jour !