Collection<String> nameList = Arrays.asList("John", "Bill");
Aggregation agg = newAggregation(
addFields()
.addField("scorrrz").withValue(arrayOf(nameList).indexOf("$name"))
.build()
);
Die Projektion der Aggregation ist ein $addFields
Stufe mit einem $indexOfArray
Aggregations-Array-Operation. Dies gibt ein Feld scorrrz
zurück , und es hat den Indexwert oder -1
wenn es keine Übereinstimmung gibt. Dies lief problemlos mit Spring Boot v2.3.10 und MongoDB v4.2.8.
Die Ausführung dieser Aggregation passiert die Pipeline agg
zum MongoTemplate#aggregate
Methode.