问题描述
我正在尝试这个,它一次只对一个 ID 有效。我想添加 ID 列表。
public interface collectionRepository extends MongoRepository<collection,String> {
List<collection> findByIds(List<UUID> id);
}
有人可以提出一些想法吗?提前感谢您的帮助!
解决方法
这适用于 POJO 类如下的情况:
public class User {
private String id;
private String firstName;
private String lastName;
// constructors (including default),get/set methods,etc.
}
并且,文档存储在集合 user
中,例如:
{ "_id" : ObjectId("604827bf8187ce707fb88681"),"firstName" : "John","lastName" : "Doe","_class" : "com.example.demo.User" }
具有获取具有提供的 id 列表的对象的方法的存储库:
public interface UserRepository extends MongoRepository<User,String> {
@Aggregation(pipeline = { " { '$match': { '_id': { '$in': ?0 } } }" } )
List<User> findByIdsIn(List<String> ids);
}
对存储库方法的调用:
List<String> inputIds = Arrays.asList("604827d13de5773133374acc","604827617a40155f5111b9ff");
List<User> outputList = userRepository.findByIdsIn(inputIds);
outputList
有 两个 文档与变量 inputIds
中的 ID 匹配。