mongo查询仅选择一个月的第一天

加布彩虹

是否可以仅查询mongo日期字段的月份的第一天(或最后一天或任何单个?)。

经常在$ group子句中使用$ date聚合运算符

基本上我有一个字段已经被汇总(平均)为每个月的每一天。我只希望选择这些天之一(以该值代表整个月)。

以下是2014年1月1日至2015年2月1日创下的记录的示例,其中price包含每日价格和28day_avg28天的连续月平均值。

{ "date" : ISODate("2014-01-01T00:00:00Z"), "_id" : ObjectId("533b3697574e2fd08f431cff"), "price": 59.23,  "28day_avg": 54.21}
{ "date" : ISODate("2014-01-02T00:00:00Z"), "_id" : ObjectId("533b3697574e2fd08f431cff"), "price": 58.75,  "28day_avg": 54.15}
...

{ "date" : ISODate("2015-02-01T00:00:00Z"), "_id" : ObjectId("533b3697574e2fd08f431cff"), "price": 123.50,  "28day_avg": 122.25} 

方法1.我目前正在使用$ month数据(并将求和price运行聚合,但是一个问题是我正在寻求检索基础日期值ISODate(“ 2015-02-01T00:00:00Z”)与0,1,2几个日期聚合附带的值(在周,月,年的第一天循环)。mod(28)在约会上?

方法2我只想简单地提取一个28day_avg代表该时期的记录。一个月的第一天就足够了

所需的输出是...

_id: ISODate("2015-02-01T00:00:00Z"), value: 122.25,
_id: ISODate("2015-01-01T00:00:00Z"), value: 120.78,
_id: ISODate("2014-12-01T00:00:00Z"), value: 118.71,
 ...
_id: ISODate("2014-01-01T00:00:00Z"), value: 53.21,

当然,方法1到方法2的值会有所不同,但这很好。一种是拖延28天,而另一种将占28、30、31天的月...别那么在意。

非agg可以,但也不起作用。又名{"date": { "$mod": [ 28, 0 ]} }

wdberkeley

要选择每个月的第一天(方法2),请使用以下汇总:

db.test.aggregate([
    { "$project" : { "_id" : "$date", "day" : { "$dayOfMonth" : "$date" }, "28day_avg" : 1 } },
    { "$match" : { "day" : 1 } }
])

您不能为匹配使用索引,因此效率不高。我建议在每个包含该$dayOfMonth值的文档中添加另一个字段,以便您可以对其建立索引并进行简单的查找:

{
    "date" : ISODate("2014-01-01T00:00:00Z"),
    "price" : 59.23,
    "28day_avg" : 54.21,
    "dayOfMonth" : 1
}

db.test.ensureIndex({ "dayOfMonth" : 1 })
db.test.find({ "dayOfMonth" : 1 }, { "_id" : 0, "date" : 1, "28day_avg" : 1 })

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在谷歌表格查询中选择一个月的第一天

来自分类Dev

快速获得一个月的第一天

来自分类Dev

一个月的第一天

来自分类Dev

SQL:你如何获取一个月的第一天?

来自分类Dev

一个月的第一天和最后一天

来自分类Dev

如何使用Apache DateUtils来获取第一天到第一天的最后一个月的时间[JAVA]?

来自分类Dev

jQuery datepicker将不允许在一个月有31天时选择日期,并选择一个月的第一天

来自分类Dev

如何获得我所在时区可能的实际第一个月第一天?

来自分类Dev

如何获得我所在时区的实际第一个月第一天?

来自分类Dev

如果day是一个月的第一天,Joda或Java如何返回true?

来自分类Dev

保留一个月的第一天,即使它在 R 中重复

来自分类Dev

如何检索日期从一个月的第一天开始的所有行

来自分类Dev

在 Google Big_Query 中显示一个月的第一天

来自分类Dev

在postgresSQL中获取一个月的最后一天和第一天的时间戳

来自分类Dev

SQL/VBA:如何从一个月的第一天以外的一天开始按会计年度分组

来自分类Dev

在Python日期时间为什么是第一个月,“月”,= 1,但“星期一”,一周= 0的第一天?

来自分类Dev

如何获得一个月中每周的第一天和最后一天?

来自分类Dev

MySQL查询以获取具有日期字段的第一个月的最后一天的行

来自分类Dev

python - 如何找到用户给定的一个月的第一天,用户给定的一年中的哪一天落在python中

来自分类Dev

Ruby:一个月中特定日期(例如每个月的第一天)在两个日期之间出现的次数

来自分类Dev

Android日历:一周的第一天和最后一天->零个月

来自分类Dev

如果日期是一个月的最后一天,则 SQL 查询返回 1,否则返回 0

来自分类Dev

计算一天,一周,一个月的用户注册

来自分类Dev

SQL获取本月前三个月的月份的第一天

来自分类Dev

如何从SQL Server每小时获取每小时记录,只有一个月中的第一天记录?

来自分类Dev

如何获取YearMonth对象中一个月的最后一天?

来自分类Dev

Mysql之前一个月和一天之后

来自分类Dev

如何标记上周五或最后一天或一个月

来自分类Dev

一个月从另一天开始

Related 相关文章

  1. 1

    在谷歌表格查询中选择一个月的第一天

  2. 2

    快速获得一个月的第一天

  3. 3

    一个月的第一天

  4. 4

    SQL:你如何获取一个月的第一天?

  5. 5

    一个月的第一天和最后一天

  6. 6

    如何使用Apache DateUtils来获取第一天到第一天的最后一个月的时间[JAVA]?

  7. 7

    jQuery datepicker将不允许在一个月有31天时选择日期,并选择一个月的第一天

  8. 8

    如何获得我所在时区可能的实际第一个月第一天?

  9. 9

    如何获得我所在时区的实际第一个月第一天?

  10. 10

    如果day是一个月的第一天,Joda或Java如何返回true?

  11. 11

    保留一个月的第一天,即使它在 R 中重复

  12. 12

    如何检索日期从一个月的第一天开始的所有行

  13. 13

    在 Google Big_Query 中显示一个月的第一天

  14. 14

    在postgresSQL中获取一个月的最后一天和第一天的时间戳

  15. 15

    SQL/VBA:如何从一个月的第一天以外的一天开始按会计年度分组

  16. 16

    在Python日期时间为什么是第一个月,“月”,= 1,但“星期一”,一周= 0的第一天?

  17. 17

    如何获得一个月中每周的第一天和最后一天?

  18. 18

    MySQL查询以获取具有日期字段的第一个月的最后一天的行

  19. 19

    python - 如何找到用户给定的一个月的第一天,用户给定的一年中的哪一天落在python中

  20. 20

    Ruby:一个月中特定日期(例如每个月的第一天)在两个日期之间出现的次数

  21. 21

    Android日历:一周的第一天和最后一天->零个月

  22. 22

    如果日期是一个月的最后一天,则 SQL 查询返回 1,否则返回 0

  23. 23

    计算一天,一周,一个月的用户注册

  24. 24

    SQL获取本月前三个月的月份的第一天

  25. 25

    如何从SQL Server每小时获取每小时记录,只有一个月中的第一天记录?

  26. 26

    如何获取YearMonth对象中一个月的最后一天?

  27. 27

    Mysql之前一个月和一天之后

  28. 28

    如何标记上周五或最后一天或一个月

  29. 29

    一个月从另一天开始

热门标签

归档