首页 > 数据库 >MongoDB .NET Driver Group By Time Range 按时间分组查询

MongoDB .NET Driver Group By Time Range 按时间分组查询

时间:2023-02-24 17:26:09浏览次数:42  
标签:startDate Group MongoDB Driver DateTime Timestamp new Minute

 

先看下一个错误的写法:

var filter = Builders<Model>.Filter.Where(r => r.Timestamp > startDate && r.Timestamp < endDate);
var result = Collection.Aggregate()
           .Match(filter)
           .Group(
               r => r.Timestamp.Minute,
               g => new
               {
                   ReceiveDate = g.Select(x => x.Timestamp).First(),
                   Count = g.Count(),
               }
           ).ToEnumerable();

错误原因:Minute分钟数在跨小时会重复,导致数据错误。

正确的写法:

 

DateTime startDate = new DateTime(2018, 5, 1, 0, 0, 0, DateTimeKind.Utc);
DateTime endDate = new DateTime(2018, 6, 1, 0, 0, 0, DateTimeKind.Utc);

var result = Collection.Aggregate()
  .Match(k => k.Timestamp >= startDate && k.Timestamp < endDate)
  .Group(k =>
    new DateTime(k.Timestamp.Year, k.Timestamp.Month, k.Timestamp.Day,
        k.Timestamp.Hour, k.Timestamp.Minute - (k.Timestamp.Minute % 15), 0),
    g => new { _id = g.Key, count = g.Count() }
  )
  .SortBy(d => d._id)
  .ToList();

 

 

 

原文:

https://devpress.csdn.net/mongodb/62fc85617e6682346618fef7.html?

 

标签:startDate,Group,MongoDB,Driver,DateTime,Timestamp,new,Minute
From: https://www.cnblogs.com/puzi0315/p/17152226.html

相关文章

  • QT MySQL 连接出错报 QSqlDatabase: QMYSQL driver not loaded
    QT连接MySQL失败(本人QT版本:5.12.5)一、报错结果QSqlDatabase:QMYSQLdrivernotloadedQSqlDatabase:availabledrivers:QSQLITEQODBCQODBC3QPSQLQPSQL7二、报......
  • laravel groupby 报错
    报错信息laravelwhichisnotfunctionallydependentoncolumnsinGROUPBYclause;thisisincompatiblewithsql_mode=only_full_group_by关闭严格模式:修改app......
  • run MongoDB in Docker container
    PSC:\Users\【user]>dockerpullmongo:latestlatest:Pullingfromlibrary/mongo10ac4908093d:Pullcomplete685504455d09:Pullcompleteebd36404f329:Pullco......
  • Java 操作mongodb的增删改查操作
    MongoDb非关系型数据库,又称为NoSql(不仅仅是sql),主要是非关系型,分布式,不提供ACID的数据库设计模式。MongoDB是一种面向文档的数据库管理系统,支持的数据结构非常松散,是类似j......
  • Windows 上 Docker 部署 MongoDb 并构建数据持久化
    拉取镜像老样子先拉取一个镜像。dockerpullmongo:latest运行容器dockerrun-p27017:27017--namemongo-v/d/mongo/data:/data/db-eMONGO_INITDB_ROOT_USERNA......
  • 在 code-server Docker Container 使用 host user/group 账户
      在code-serverDockerContainer使用hostuser/group账户(jgsun.github.io) Overview“工欲善其事,必先利其器!”此文为 定制code-serverdockerimage ......
  • MongoDB 6.0.4 安装记录
    须知:版本号x.y.z,看y:偶数版为稳定版,奇数版为开发版(1)下载zip,解压1https://fastdl.mongodb.org/windows/mongodb-windows-x86_64-6.0.4.zip建立data文件夹,与bin同......
  • Mongodb报错:SyntaxError: identifier starts immediately after numeric literal
    我在练习mongodb命令的时候,这段怎么也无法通过,一直报错:SyntaxError:identifierstartsimmediatelyafternumericliteraldb.mycol.insertMany([{_id:ObjectId(7df78a......
  • GROUP BY
    前言groupby关键字,不管是工作中还是面试都会经常被用到,所以弄懂它是非常有必要的。要弄懂groupby那我们就得联合着:聚合函数、groupby、having一块讲解。讲之前我......
  • 浅析MySQL中concat以及group_concat的使用
    说明:本文中使用的例子均在下面的数据库表tt2下执行: 一、concat()函数1、功能:将多个字符串连接成一个字符串。2、语法:concat(str1,str2,...)返回结果为连接参数产生......