Collection<String> nameList = Arrays.asList("John", "Bill");
Aggregation agg = newAggregation(
addFields()
.addField("scorrrz").withValue(arrayOf(nameList).indexOf("$name"))
.build()
);
アグリゲーションの射影は$addFields
です $indexOfArray
を使用したステージ 集約配列操作。これにより、フィールドscorrrz
が返されます。 、およびインデックス値または -1
一致するものがない場合。これは、SpringBootv2.3.10およびMongoDBv4.2.8で問題なく実行されました。
この集計を実行すると、パイプラインagg
が渡されます MongoTemplate#aggregate
に メソッド。