J'essaie de définir un ensemble de champs à la valeur Max entre la valeur actuelle et la nouvelle valeur.
Je pense faire
UpdateBuilder<ADocument> update = Update<ADocument>
.SetMax (d => d.HighScore, highScore)
.SetMax (d => d.MaxGameTime, gameTime)
.SetMax (d => d.MaxLevels, levels);
Etc .. Mais il n'y a pas .SetMax, ou non .Max - qui utiliserait le mot-clé max $ pour le définir.
Alors, comment faites-vous cela? Je ne veux pas créer 3 requêtes (6 dans mon exemple réel) pour demander le Max highScore et le définir si .GE, et répéter pour chacun des autres champs.
Merci
Avez-vous besoin https://github.com/mongodb/mongo-csharp-driver/blob/master/src/MongoDB. Driver/MongoCursor.cs # L461-L466 –
dans 2.6 il y a un opérateur $ max pour la mise à jour. Comme il s'agit d'un nouvel opérateur, vous devez utiliser la dernière version du pilote C# pour pouvoir utiliser SetMax que @MatijaGrcic vous a correctement indiqué. –
On dirait que la base de données est 2.4.9 - donc je présume que cela signifie qu'il n'est pas supporté? Et nous exécutons 1.8.3.9 du pilote C#. Nous devons donc mettre à jour pour que cela fonctionne? –