环境:MongoDB的3.2,吗啡1.1.0具有吗啡查询条件的多个过滤器Mongo的数据库
因此,可以说我有员工的收集和雇员实体有几个领域。我需要执行一些操作,例如应用多个过滤器(有条件),并为每个请求返回一批10条记录。
pesudocode如下。
@Entity("Employee")
Employee{
String firstname,
String lastName,
int salary,
int deptCode,
String nationality
}
在我EmployeeFilterRequest
i中的请求参数携带于dao
EmployeeFilterRequest{
int salaryLessThen
int deptCode,
String nationality..
}
伪类在上面的代码
class EmployeeDao{
public List<Employee> returnList;
public getFilteredResponse(EmployeeFilterRequest request){
DataStore ds = getTheDatastore();
Query<Employee> query = ds.createQuery(Emploee.class).disableValidation();
//conditional request #1
if(request.filterBySalary){
query.filter("salary >", request.salary);
}
//conditional request #2
if(request.filterBydeptCode){
query.filter("deptCode ==", request.deptCode);
}
//conditional request #3
if(request.filterByNationality){
query.filter("nationality ==", request.nationality);
}
returnList = query.batchSize(10).asList();
/******* **THIS IS RETURNING ME ALL THE RECORDS IN THE COLLECTION, EXPECTED ONLY 10** *****/
}
}
SO如所解释..我想在执行条件滤波多个领域。即使批量大小为10,我也会收集完整的记录。
如何解决这个???
问候 Punith
我认为你是错把'.batchSize()''为.limit()',这是两个不同的东西。 –
谢谢@BlakesSeven !!这解决了:) –