MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Comment mettre à jour les champs de documents dans mongo db à l'aide du pilote Java ?

Je me demande si le pilote est assez intelligent pour ne mettre à jour que le plus petit sous-ensemble de modifications ou s'il ne fait que mettre à jour aveuglément l'ensemble ?

Non, si vous utilisez la méthode de mise à jour "normale", tout l'objet sera envoyé sur le réseau.Je soupçonne que le serveur de base de données lui-même sera assez intelligent pour ne mettre à jour que les index nécessaires (et non ceux qui n'ont pas changé), si possible (c'est-à-dire que l'objet peut être mis à jour sur place et n'a pas dû être déplacé car il a trop grandi)

Ce que vous pouvez faire, c'est utiliser les fonctions "modificateur de mise à jour atomique". La documentation Java est un peu légère, mais comme le pilote ne fait que transmettre le JSON, les éléments des didacticiels non Java devraient fonctionner, par exemple :

shapes.update((DBObject)JSON.parse(    "{ 'foo' : 'bar'}"),  
    (DBObject) JSON.parse(          "{ '$set' : { 'foo': 'bat'}}")   );