Collection<String> nameList = Arrays.asList("John", "Bill");
Aggregation agg = newAggregation(
addFields()
.addField("scorrrz").withValue(arrayOf(nameList).indexOf("$name"))
.build()
);
Проекцията на агрегата е $addFields
етап с $indexOfArray
операция за агрегиране на масиви. Това ще върне поле scorrrz
и ще има стойност на индекс или -1
когато няма съвпадение. Това работи добре с Spring Boot v2.3.10 и MongoDB v4.2.8.
Изпълнението на това агрегиране преминава през конвейера agg
към MongoTemplate#aggregate
метод.