MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

MongoDB $addField und $indexOfArray in Spring Data

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.