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.