MongoDB学习之复杂条件拼接和正则详解

来源:互联网 发布:yum命令常用来做什么用 编辑:程序博客网 时间:2024/05/21 22:35
本文和大家分享的主要是MongoDB中复杂条件拼接和正则的相关内容,一起来看看吧,希望对大家学习MongoDB数据库有所帮助。
  在lind框架里有日志组件logger,而在日志实现方式上有file,mongodb,sql,json等方式,对分布式日志处理上大叔推荐使用mongodb进行存储,除了它的高效写入,灵活的结构外,还有对复杂条件的支持,你可以从百万数据中查询到你需要的内容,这点是关系数据库不能实现的,你无法想法使用like这种语句是百万数据中全表扫描...
日志管理UI

对多个检索条件的支持
  1. 条件创建者
  2. 初者化空条件
  3. 条件拼接
  NameValueCollection nv = new NameValueCollection();
  var builder = Builders.Filter;
  var filter = builder.Empty;
  if (!string.IsNullOrWhiteSpace(level) && level != "All")
  {
  filter = builder.Eq("level", level);
  nv.Add("level", level);
  }
  if (startTime.HasValue)
  {
  filter = filter & builder.Gte("DataCreateDateTime", startTime.Value);
  nv.Add("startTime", startTime.Value.ToString());
  }
  if (endTime.HasValue)
  {
  filter = filter & builder.Lte("DataCreateDateTime", endTime.Value);
  nv.Add("endTime", endTime.Value.ToString());
  }
  if (!string.IsNullOrWhiteSpace(keyword))
  {
  filter = filter & builder.Regex("Message", new BsonRegularExpression(new Regex(keyword)));
  nv.Add("keyword", keyword);
  }
  int pageSize = 10;
  nv.Add("pageSize", pageSize.ToString());
  int skip = (int)Math.Ceiling((double)((page - 1) * pageSize));
  var table = Lind.DDD.MongoDbClient.MongoManager.Instance
  .Find(filter)
  .SortBy(i => i.DataCreateDateTime);
  ViewBag.total = table.Count();
  ViewBag.nv = nv;
  var model = table.Skip(skip)
  .Limit(pageSize)
  .ToList();
  return View(model);
  然后页面上直接放表表格即可,建议通过bootstrap进行布局,这样有移动设备上也可以使用!
来源:博客园
0 0
原创粉丝点击