public static string Test4() { // { "$and" : [{ "FormId" : "CarInfo" }, { "Level1" : "Apple" }, { "CreateDate" : { "$gte" : "2010-01-01", "$lte" : "2020-12-31" } }, { "FormValues" : { "$elemMatch" : { "key" : "key1", "value" : { "$ne" : "", "$lte" : "2020" } } } }, { "FormValues" : { "$elemMatch" : { "key" : "key2", "value" : { "$gte" : "2000", "$lte" : "2020" } } } }] } QueryModel3 queryModel = new QueryModel3() { QueryUnits = new List <QueryUnit>() { new QueryUnit() { Factors = new List <QueryFactor>() { new QueryFactor() { Key = "FormId", ValueOperators = new List <QueryFactorOperator>() { new QueryFactorOperator() { Value = "CarInfo" } } }, new QueryFactor() { Key = "Level1", ValueOperators = new List <QueryFactorOperator>() { new QueryFactorOperator() { Value = "Apple" } } }, new QueryFactor() { Key = "CreateDate", ValueOperators = new List <QueryFactorOperator>() { new QueryFactorOperator() { Value = "2010-01-01", QueryOperator = QueryOperatorKind.GTE }, new QueryFactorOperator() { Value = "2020-12-31", QueryOperator = QueryOperatorKind.LTE } } } } }, new QueryUnit() { ElemMatchName = "FormValues", Factors = new List <QueryFactor>() { new QueryFactor() { Key = "key", ValueOperators = new List <QueryFactorOperator>() { new QueryFactorOperator() { Value = "key1" } } }, new QueryFactor() { Key = "value", ValueOperators = new List <QueryFactorOperator>() { new QueryFactorOperator() { Value = "", QueryOperator = QueryOperatorKind.NE }, new QueryFactorOperator() { Value = "2020", QueryOperator = QueryOperatorKind.LTE } } } } }, new QueryUnit() { ElemMatchName = "FormValues", Factors = new List <QueryFactor>() { new QueryFactor() { Key = "key", ValueOperators = new List <QueryFactorOperator>() { new QueryFactorOperator() { Value = "key2" } } }, new QueryFactor() { Key = "value", ValueOperators = new List <QueryFactorOperator>() { new QueryFactorOperator() { Value = "2000", QueryOperator = QueryOperatorKind.GTE }, new QueryFactorOperator() { Value = "2020", QueryOperator = QueryOperatorKind.LTE } } } } } } }; var filter = QueryModel3Helper <BsonDocument> .ToMongodbFilter(queryModel); return(MongodbHelper.FilterDefinitionToJsonString(filter)); }
public static string Test3() { //1&2&3|(1&(4|5)) QueryModel3 queryModel = new QueryModel3() { LogicalOperator = LogicalOperatorKind.Or, QueryModels = new List <QueryModel3>() { new QueryModel3() { QueryUnits = new List <QueryUnit>() { new QueryUnit() { Factors = new List <QueryFactor>() { new QueryFactor() { Key = "col_1", ValueOperators = new List <QueryFactorOperator>() { new QueryFactorOperator() { Value = "col_1_value" } } }, new QueryFactor() { Key = "col_2", ValueOperators = new List <QueryFactorOperator>() { new QueryFactorOperator() { Value = "col_2_value" } } }, new QueryFactor() { Key = "col_3", ValueOperators = new List <QueryFactorOperator>() { new QueryFactorOperator() { Value = "col_3_value" } } } } } } }, new QueryModel3() { QueryModels = new List <QueryModel3>() { new QueryModel3() { QueryUnits = new List <QueryUnit>() { new QueryUnit() { Factors = new List <QueryFactor>() { new QueryFactor() { Key = "col_1", ValueOperators = new List <QueryFactorOperator>() { new QueryFactorOperator() { Value = "col_1_value" } } }, } } } }, new QueryModel3() { QueryUnits = new List <QueryUnit>() { new QueryUnit() { LogicalOperator = LogicalOperatorKind.Or, Factors = new List <QueryFactor>() { new QueryFactor() { Key = "col_4", ValueOperators = new List <QueryFactorOperator>() { new QueryFactorOperator() { Value = "col_4_value" } } }, new QueryFactor() { Key = "col_5", ValueOperators = new List <QueryFactorOperator>() { new QueryFactorOperator() { Value = "col_5_value" } } } } } } } } } } }; var filter = QueryModel3Helper <BsonDocument> .ToMongodbFilter(queryModel); return(MongodbHelper.FilterDefinitionToJsonString(filter)); }