zoukankan      html  css  js  c++  java
  • MongoDB Driver 中通过过滤器(Filter)查询符合条件的文档记录数

    一、举例:在物流币点击记录里面查询出 同一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; } }

        

  • 相关阅读:
    txt文本处理---行未添加逗号
    wav转txt格式的代码实现(c,python)
    程序员的健康--预防
    程序员的健康--病因
    朴素贝叶斯算法简介及python代码实现分析
    hdf 5文件格式及python中利用h5py模块读写h5文件
    C 语言restrict 关键字的概念及使用例子
    一个程序员卑微的目标
    【ES】学习4-结构化搜索
    【python】正则表达式中的转义问题
  • 原文地址:https://www.cnblogs.com/Learnall/p/14343445.html
Copyright © 2011-2022 走看看