diff --git a/src/main/java/org/mongoste/query/DefaultQuery.java b/src/main/java/org/mongoste/query/DefaultQuery.java index 043c1d4..1ca7388 100644 --- a/src/main/java/org/mongoste/query/DefaultQuery.java +++ b/src/main/java/org/mongoste/query/DefaultQuery.java @@ -99,7 +99,19 @@ public Query limit(Integer maxResults) { */ @Override public Query filterBy(QueryField field,Object value) { - return filterBy(field,new QueryFilter(QueryOp.EQ,value)); + return filterBy(field,QueryOp.EQ,value); + } + + + /** + * Sets a filter to a single field with an operation + * @param field Field to filter by + * @param operation Filter operation + * @param value Value to apply + * @return + */ + public Query filterBy(QueryField field,QueryOp operation,Object value) { + return filterBy(field,new QueryFilter(operation,value)); } /** diff --git a/src/main/java/org/mongoste/query/Query.java b/src/main/java/org/mongoste/query/Query.java index 5752988..51e2d7c 100644 --- a/src/main/java/org/mongoste/query/Query.java +++ b/src/main/java/org/mongoste/query/Query.java @@ -64,6 +64,15 @@ public interface Query extends Serializable { */ Query filterBy(QueryField field, Object value); + /** + * Sets a filter to a single field with an operation + * @param field Field to filter by + * @param operation Filter operation + * @param value Value to apply + * @return + */ + Query filterBy(QueryField field, QueryOp operation, Object value); + /** * Sets a filter to a single field * @param field Field to filter by diff --git a/src/test/java/org/mongoste/core/impl/mongodb/MongoStatsEngineTest.java b/src/test/java/org/mongoste/core/impl/mongodb/MongoStatsEngineTest.java index 6d31b1d..f218e9b 100644 --- a/src/test/java/org/mongoste/core/impl/mongodb/MongoStatsEngineTest.java +++ b/src/test/java/org/mongoste/core/impl/mongodb/MongoStatsEngineTest.java @@ -45,6 +45,7 @@ import java.util.Properties; import java.text.ParseException; import org.mongoste.query.Query; +import org.mongoste.query.QueryOp; import org.mongoste.query.RequiredQueryFieldException; /** @@ -682,9 +683,11 @@ public void testGetMultiTargetActionCount() throws Exception { System.out.println("result:"+result); //TODO check collection List targets = Arrays.asList(event.getTarget()); - //query.filterBy(QueryField.TARGET,QueryOp.IN,targets) - //query.filterBy(QueryField.TARGET).in(targets) - + query.filterBy(QueryField.TARGET,QueryOp.IN,targets); + result = query.getMultiTargetActionCount(); + assertNotNull(result); + assertEquals(1,result.size()); + System.out.println("result:"+result); } /**