首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >MongoDB聚合查询$match在日期范围内不返回任何内容,为什么?

MongoDB聚合查询$match在日期范围内不返回任何内容,为什么?
EN

Stack Overflow用户
提问于 2014-03-31 07:53:25
回答 1查看 1.1K关注 0票数 0

我无法获取以下MongoDB聚合查询以返回结果。它只返回一个空数组。我相信这是因为它没有正确处理日期范围。但是,当我执行PriceHourly.find({ date: { $lt: end, $gt: start }})时,记录会像预期的那样返回...

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    var start       = moment.utc('03-02-2012').startOf('day');
    var end         = moment.utc('03-02-2012').add('days',1).startOf('day');

    PriceHourly.aggregate([
        { $match: { date: { $gt: start, $lt: end } } },
        { $group: { _id: null, avgPrice: { $avg: '$price' } } }

    ], function(err, results){
        console.log(err, results);
    });

// Model
var PriceHourlySchema = new Schema({
    created: {
        type: Date,
        default: Date.now
    },
    full_date: {
        type: String,
        required: true,
        trim: true
    },
    day: {
        type: String,
        required: true,
        trim: true
    },
    hour: {
        type: String,
        required: true,
        trim: true
    },
    price: {
        type: Number,
        required: true
    },
    date: {
        type: Date,
        required: true
    }
}, 
{ 
    autoIndex: true 
});
EN

回答 1

Stack Overflow用户

发布于 2014-03-31 20:14:13

MongoDB聚合框架的$match不理解我提交的Moment Date对象。$match似乎只适用于原生Javascript date对象。因此,如果您仍然希望在$match中使用Moment.js,只需使用Moment的toDate()方法将Moment.js Date对象转换为Native Javascript Date对象,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var start       = moment.utc(req.query.start).startOf('year').toDate();
var end         = moment.utc(req.query.start).add('years',1).startOf('year').add('hours',1).toDate();
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22756255

复制
相关文章
mongodb联表查询_mongodb聚合查询
在使用MongoDB存储数据的时候,我们查询的时候,有时候难免会需要进行连表查询。但是MongoDB本身是非关系性数据库,连表查询,很多时候,需要我们自己在代码里手工操作。但是从 MongoDB 3.2 版本过后,我们可以使用 $lookup 进行连表查询。下面就简单介绍一下 MongoDB 的 $lookup 的简单使用。
全栈程序员站长
2022/10/05
3K0
MongoDB 日期类型查询
一、前言 MongoDB 里面的日期类型是没有时区概念的,默认存储的是 ISODate("2018-04-02T13:19:16.418Z") 这种格式的零时区时间,比北京时间晚了八个小时。 工作中遇到了一个问题,怎么查询比当前时间小30秒之内的文档记录呢? 时区问题有关系吗?日期类型要怎么比较?怎么表示当前时间呢?日期要怎么实现加减呢? 二、方案 1、时区问题 其实时区问题并不是一个太需要关注的问题,因为MongoDB 提供了一个Javascript shell 窗口,支持 js 的语法。进行日期类型比较
JMCui
2018/04/17
3.1K0
MongoDB 高级查询 aggregate 聚合管道
db.COLLECTION_NAME.aggregate() 方法用来构建和使用聚合管道,下图是官网给的实例,可以看出来聚合管道的用法还是比较简单的。
越陌度阡
2020/11/26
2.1K0
MongoDB 高级查询 aggregate 聚合管道
【mongoDB查询进阶】聚合管道(一) -- 初识
英文文档中是aggregation pipeline,直译为聚合管道,它可以对数据文档进行变换和组合。聚合管道是基于数据流概念,数据进入管道经过一个或多个stage,每个stage对数据进行操作(筛选,投射,分组,排序,限制或跳过)后输出最终结果。
莫问今朝
2019/02/25
1.2K0
数据库MongoDB-聚合查询
在MongoDB中我们可以通过aggregate()函数来完成一些聚合查询,aggregate()函数主要用于处理诸如统计,平均值,求和等,并返回计算后的数据结果。
cwl_java
2021/08/30
7.5K0
数据库MongoDB-聚合查询
数据库MongoDB-聚合查询
在MongoDB中我们可以通过aggregate()函数来完成一些聚合查询,aggregate()函数主要用于处理诸如统计,平均值,求和等,并返回计算后的数据结果。
cwl_java
2021/02/04
7.9K0
MongoDB聚合索引在实际开发中的应用场景-嵌套文档的聚合查询
MongoDB 支持嵌套文档,即一个文档中可以包含另一个文档作为其字段。在聚合查询中,可以通过 $unwind 操作将嵌套文档展开,从而进行更灵活的查询和统计。
玖叁叁
2023/04/14
3.5K0
在MongoDB中实现聚合函数
随着组织产生的数据爆炸性增长,从GB到TB,从TB到PB,传统的数据库已经无法通过垂直扩展来管理如此之大数据。传统方法存储和处理数据的成本将会随着数据量增长而显著增加。这使得很多组织都在寻找一种经济的解决方案,比如NoSQL数据库,它提供了所需的数据存储和处理能力、扩展性和成本效率。NoSQL数据库不使用SQL作为查询语言。这种数据库有多种不同的类型,比如文档结构存储、键值结构存储、图结构、对象数据库等等。 我们在本文中使用的NoSQL是MongoDB,它是一种开源的文档数据库系统,开发语言为C++。它提供
张善友
2018/01/22
3.7K0
Python | Python交互之mongoDB交互详解
本篇为mongodb篇,包含实例演示,mongodb高级查询,mongodb聚合管道,python交互等内容。
咸鱼学Python
2019/10/09
8K0
MongoDB系列六(聚合).
 一、概念     使用聚合框架可以对集合中的文档进行变换和组合。基本上,可以用多个构件创建一个管道(pipeline),用于对一连串的文档进行处理。这些构件包括筛选(filtering)、投射(projecting)、分组(grouping)、排序(sorting)、限制(limiting)和跳过(skipping)。 二、聚合函数 db.driverLocation.aggregate( {"$match":{"areaCode":"350203"}}, {"$project":{"dr
JMCui
2018/04/23
4.9K0
MongoDB系列六(聚合).
005.MongoDB索引及聚合
索引通常能够极大的提高查询的效率,如果没有索引,MongoDB在读取数据时必须扫描集合中的每个文件并选取那些符合查询条件的记录。
木二
2019/07/01
2.2K0
MongoDB(13)- 查询操作返回指定的字段
答案是不能的,如果想指定 <projection> 是包含字段,那所有字段值都得统一是 1,相反如果是不包含,也必须都是 0
小菠萝测试笔记
2021/06/10
6.5K0
MongoDB 聚合索引如何分析和优化查询性能
MongoDB 可以使用 explain() 方法来获取查询的执行计划,通过分析执行计划可以找到查询的瓶颈所在,以便进行优化。在执行 explain() 方法时,可以使用 executionStats 选项来获取详细的执行统计信息,例如查询的扫描次数、索引的使用情况等。
玖叁叁
2023/04/14
2.4K0
【mongoDB查询进阶】聚合管道(二) -- 阶段操作符
mongoDB有4类操作符用于文档的操作,例如find查询里面会用到的$gte,$in等。操作符以$开头,分为查询操作符,更新操作符,管道操作符,查询修饰符4大类。其中管道操作符是用于聚合管道中的操作符。
莫问今朝
2019/02/25
2.5K0
[767]MongoDB聚合运算
MongoDB中聚合(aggregate)主要用于处理数据(诸如统计平均值,求和等),并返回计算后的数据结果。有点类似sql语句中的 count(*)。
周小董
2020/02/29
1.8K0
MongoDB 聚合索引
MongoDB 聚合索引是一种包含多个字段的索引,它可以提高查询效率,特别是在需要对多个字段进行查询或者聚合操作时。以下是 MongoDB 官方文档中关于聚合索引的详细说明和示例:
玖叁叁
2023/04/14
7610
MongoDB聚合操作
MongoDB是一个非常强大的文档数据库,它提供了一系列聚合操作,可以方便地对文档进行分组、过滤、排序和统计等操作。在本文中,我们将介绍MongoDB的聚合操作,并提供一些示例代码来说明如何在MongoDB中使用它们。
玖叁叁
2023/04/13
1.4K0
【翻译】MongoDB指南/聚合——聚合管道
【原文地址】https://docs.mongodb.com/manual/ 聚合 聚合操作处理数据记录并返回计算后的结果。聚合操作将多个文档分组,并能对已分组的数据执行一系列操作而返回单一结果。MongoDB提供了三种执行聚合的方式:聚合管道,map-reduce方法和单一目的聚合操作。 聚合管道 MongoDB的聚合框架模型建立在数据处理管道这一概念的基础之上。文档进入多阶段管道中,管道将文档转换为聚合结果。最基本的管道阶段类似于查询过滤器和修改输出文档形式的文档转换器。 其他的管道为分组和排序提供一些
甜橙很酸
2018/03/08
4K0
【翻译】MongoDB指南/聚合——聚合管道
python socket recvfrom_Python:socket.recvfrom()不返回任何地址
我正在尝试编写示例here的Python版本,但是由于某种原因,我在客户端和服务器中对socket.recvfrom()的每次调用都将其地址返回值为None.我唯一能想到的可能是套接字是STREAM套接字,但是当我尝试将类型更改为socket.SOCK_DGRAM时,调用socket.listen()时出错.我该如何解决这个问题?
全栈程序员站长
2022/09/15
1K0
Elasticsearch 如何实现查询/聚合不区分大小写?
问题2:ES7.6 如何实现模糊查询不区分大小写? 主要是如何进行分词和mapping的一些设置来实现这个效果,
铭毅天下
2020/12/17
7.9K0
Elasticsearch 如何实现查询/聚合不区分大小写?

相似问题

为什么这个MongoDB聚合查询不返回任何内容?

23

在聚合查询中查询日期范围不返回任何内容或忽略日期

114

为什么查询日期不返回任何内容?

21

mongoDB查询不返回任何内容

18

为什么我的mongodb查询不返回任何内容?

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文