/// <summary> /// 将一组过滤条件进行And操作,组合为一个条件 /// </summary> /// <param name="list"></param> /// <returns></returns> public static MongoDBFilter And(List<MongoDBFilter> list) { IEnumerable<IMongoQuery> queries = list.Select(item => item.QueryDoc as IMongoQuery); QueryDocument doc = Query.And(queries) as QueryDocument; MongoDBFilter mdbFilter = new MongoDBFilter(doc); return mdbFilter; }
/// <summary> /// 将一组过滤条件进行And操作,组合为一个条件 /// </summary> /// <param name="filters"></param> /// <returns></returns> public static MongoDBFilter And(params MongoDBFilter[] filters) { IEnumerable<IMongoQuery> queries = filters.Where(item => item != null) .Select(item => item.QueryDoc as IMongoQuery); if (queries.Count() == 0) return null; QueryDocument doc = Query.And(queries) as QueryDocument; MongoDBFilter mdbFilter = new MongoDBFilter(doc); return mdbFilter; }
/// <summary> /// 创建一个等于关系的过滤条件 /// </summary> /// <param name="field"></param> /// <param name="value"></param> /// <returns></returns> public static MongoDBFilter Eq(string field, object value) { QueryDocument doc = new QueryDocument(field, BsonValue.Create(value)); MongoDBFilter mdbFilter = new MongoDBFilter(doc); return mdbFilter; }
/// <summary> /// 将Json字符串转换为MongoDBFilter对象 /// </summary> /// <param name="json"></param> /// <returns></returns> public static MongoDBFilter Parse(string json) { QueryDocument doc = new QueryDocument(BsonDocument.Parse(json)); MongoDBFilter mdbFilter = new MongoDBFilter(doc); return mdbFilter; }
/// <summary> /// 创建一个Not In关系的过滤条件 /// </summary> /// <param name="field"></param> /// <param name="values"></param> /// <returns></returns> public static MongoDBFilter NotIn(string field, Array values) { QueryDocument doc = new QueryDocument(field, new BsonDocument("$nin", new BsonArray(values))); MongoDBFilter mdbFilter = new MongoDBFilter(doc); return mdbFilter; }
/// <summary> /// 创建一个不等于关系的过滤条件 /// </summary> /// <param name="field"></param> /// <param name="value"></param> /// <returns></returns> public static MongoDBFilter NotEq(string field, object value) { QueryDocument doc = new QueryDocument(field, new BsonDocument("$ne", BsonValue.Create(value) ?? BsonNull.Value)); MongoDBFilter mdbFilter = new MongoDBFilter(doc); return mdbFilter; }
/// <summary> /// 创建一个Like关系的过滤条件 /// </summary> /// <param name="field"></param> /// <param name="regex"></param> /// <returns></returns> public static MongoDBFilter Lk(string field, Regex regex) { BsonRegularExpression mongoRegex = new BsonRegularExpression(regex); QueryDocument doc = new QueryDocument(field, mongoRegex); MongoDBFilter mdbFilter = new MongoDBFilter(doc); return mdbFilter; }