sql >> Database >  >> NoSQL >> MongoDB

Hoe haal je alleen geselecteerde mongo-ID's op met behulp van de lente-gegevens mongorepository-methode?

Dit werkt voor een geval waarin de POJO-klasse is als:

public class User {

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

En de documenten worden opgeslagen in een verzameling user zoals bijvoorbeeld:

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

De repository met de methode om de objecten op te halen met de meegeleverde lijst met id's:

public interface UserRepository extends MongoRepository<User, String> {

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

De aanroep van de repositorymethode:

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

De outputList heeft de twee documenten die overeenkomen met de id's van de variabele inputIds .




  1. HTML ophalen van MongoDB voor gebruik in Template

  2. Is het ideaal dat MongoDB 150 MB geheugen gebruikt?

  3. embedmongo met reactiefmongo-proces wordt niet afgesloten

  4. ReplicaSetId-conflict tijdens het toevoegen van node MongoDB