MongoDB学习笔记~复杂条件拼接和正则的使用
在大叔lind框架里有日志组件logger,而在日志实现方式上有file,mongodb,sql,json等方式,对分布式日志处理上大叔推荐使用mongodb进行存储,除了它的高效写入,灵活的结构外,还有对复杂条件的支持,你可以从百万数据中查询到你需要的内容,这点是关系数据库不能实现的,你无法想法使用like这种语句是百万数据中全表扫描...
大叔日志管理UI
对多个检索条件的支持
- 条件创建者
- 初者化空条件
- 条件拼接
NameValueCollection nv = new NameValueCollection(); var builder = Builders<GlobalLogger>.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<GlobalLogger>.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进行布局,这样有移动设备上也可以使用!
感谢各位的阅读!
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· 【.NET】调用本地 Deepseek 模型
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
2016-03-24 实时监控Cat之旅~对Get和Post进行封装,支持分布式消息树
2015-03-24 不说技术~关于创业一点想法
2012-03-24 从微软的DBML文件中我们能学到什么(它告诉了我们什么是微软的重中之重)~一 DBContext的构造方法,方法的重载
2012-03-24 从微软的DBML文件中我们能学到什么(它告诉了我们什么是微软的重中之重)~目录