環境: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 !!這解決了:) –