sql >> Base de Datos >  >> NoSQL >> MongoDB

MongoDB $addField y $indexOfArray en Spring Data

Collection<String> nameList = Arrays.asList("John", "Bill");

Aggregation agg = newAggregation(
                    addFields()
                     .addField("scorrrz").withValue(arrayOf(nameList).indexOf("$name"))
                     .build()
);

La proyección de la agregación es un $addFields escenario con un $indexOfArray operación de matriz de agregación. Esto devolverá un campo scorrrz , y tendrá un valor de índice o -1 cuando no hay coincidencia. Esto funcionó bien con Spring Boot v2.3.10 y MongoDB v4.2.8.

La ejecución de esta agregación pasa la canalización agg al MongoTemplate#aggregate método.