大家好,我是考100分的小小码 ,祝大家学习进步,加薪顺利呀。今天说一说MongoDB Driver 中通过过滤器实现文档查询「建议收藏」,希望您对编程的造诣更进一步.
一、举例:在物流币点击记录里面查询出 同一IP,同一条线路,同一页面,四小时内点击次数
思路:1、根据当前查询的时间将时间回退到四小时前,然后将四小时前的时间转换为时间戳,然后组合其它条件查询 出大于对应时间戳的所有记录数。
string TheTimeStamp = TimeHelper.GetTimeStamp(requestTime.AddHours(-4));
2、构建查询过滤器
var filterBuilder = Builders<PageColllection>.Filter; var filter = filterBuilder.Eq(p => p.PXID, wid) & filterBuilder.Eq(p => p.ip, ip) & filterBuilder.Gte(p => p.unixTime, unixtemp) & filterBuilder.Eq(p => p.state, 1) & filterBuilder.Eq(p => p.URL, url);
方法如下所示:
public long AntiEvilclickRuleOne(string ip, int wid, DateTime requestTime, string url) { try { long result = 0; long unixtemp = 0; string TheTimeStamp = TimeHelper.GetTimeStamp(requestTime.AddHours(-4)); if (!long.TryParse(TheTimeStamp, out unixtemp)) { return 0; } var filterBuilder = Builders<PageColllection>.Filter; var filter = filterBuilder.Eq(p => p.PXID, wid) & filterBuilder.Eq(p => p.ip, ip) & filterBuilder.Gte(p => p.unixTime, unixtemp) & filterBuilder.Eq(p => p.state, 1) & filterBuilder.Eq(p => p.URL, url);
result = MongoDbHelper.GetDb().GetCollection<PageColllection>("PageColllection").Find(filter).CountDocuments(); return result; } catch (Exception ex) { AddLog.addLog_db("PageColllectionBLL.CheckRecordsByMemberIDLineID异常", ex.Message); return 0; } }
MongoDB Driver 中通过过滤器实现文档查询
原文地址:https://www.cnblogs.com/Learnall/p/14343445.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/6541.html