MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

MongoDB $addField e $indexOfArray em Spring Data

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

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

A projeção da agregação é um $addFields palco com um $indexOfArray operação de matriz de agregação. Isso retornará um campo scorrrz , e terá valor de índice ou -1 quando não há correspondência. Isso funcionou bem com Spring Boot v2.3.10 e MongoDB v4.2.8.

A execução desta agregação passa o pipeline agg para o MongoTemplate#aggregate método.