码迷,mamicode.com
首页 > 数据库 > 详细

MongoDB Driver 中通过过滤器实现文档查询

时间:2021-01-29 12:23:15      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:过滤   大于   rgb   ESS   one   string   request   条件查询   amp   

一、举例:在物流币点击记录里面查询出 同一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 中通过过滤器实现文档查询

标签:过滤   大于   rgb   ESS   one   string   request   条件查询   amp   

原文地址:https://www.cnblogs.com/Learnall/p/14343445.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!