sql >> Database teknologi >  >> NoSQL >> MongoDB

Hvordan henter man kun udvalgte mongo-id'er ved hjælp af spring data mongorepository-metoden?

Dette virker for et tilfælde, hvor POJO-klassen er som:

public class User {

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

Og dokumenterne er gemt i en samling user som for eksempel:

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

Depotet med metoden til at hente objekterne med den medfølgende liste over id'er:

public interface UserRepository extends MongoRepository<User, String> {

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

Kaldet til lagermetoden:

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

outputList har de to dokumenter, der matcher id'erne fra variablen inputIds .




  1. Skift felttype i Mongoid uden at miste data

  2. Rails 3 ved hjælp af MongoDB via mongoid-adapter - er der nogen måde at dele attributspecifikationer på uden at bruge Single-Table Inheritance?

  3. Mongo Query med Regex i Node JS, der opererer PÅ EN VARIABEL

  4. Docker:skift mappe, hvor docker-volumener skal opbevares