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

MongoDB $addField et $indexOfArray dans Spring Data

Collection<String> nameList = Arrays.asList("John", "Bill");

Aggregation agg = newAggregation(
                    addFields()
                     .addField("scorrrz").withValue(arrayOf(nameList).indexOf("$name"))
                     .build()
);

La projection de l'agrégation est un $addFields étape avec un $indexOfArray opération de tableau d'agrégation. Cela renverra un champ scorrrz , et il aura la valeur d'index ou -1 quand il n'y a pas de match. Cela fonctionnait bien avec Spring Boot v2.3.10 et MongoDB v4.2.8.

L'exécution de cette agrégation passe le pipeline agg au MongoTemplate#aggregate méthode.