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

¿Cómo obtener solo los ID de mongo seleccionados utilizando el método de mongorepository de datos de primavera?

Esto funciona para un caso en el que la clase POJO es como:

public class User {

    private String id;
    private String firstName;
    private String lastName;
    // constructors (including default), get/set methods, etc.
}

Y, los documentos se almacenan en una colección user como, por ejemplo:

{ "_id" : ObjectId("604827bf8187ce707fb88681"), "firstName" : "John", "lastName" : "Doe", "_class" : "com.example.demo.User" }

El repositorio con el método para obtener los objetos con la lista de ID suministrada:

public interface UserRepository extends MongoRepository<User, String> {

    @Aggregation(pipeline = { " { '$match': { '_id': { '$in':  ?0  } } }" } )
    List<User> findByIdsIn(List<String> ids);
}

La llamada al método de repositorio:

List<String> inputIds = Arrays.asList("604827d13de5773133374acc", "604827617a40155f5111b9ff");
List<User> outputList = userRepository.findByIdsIn(inputIds);

La outputList tiene los dos documentos que coinciden con los identificadores de la variable inputIds .