代码之家  ›  专栏  ›  技术社区  ›  Anthony

如何在mongoose/mongodb中获取当前日历日的文档

  •  1
  • Anthony  · 技术社区  · 6 年前

    我试着用谷歌搜索这个,但没发现什么,所以我很惊讶,为了搜索引擎的缘故,我会问这个问题。

    是否有方法获取当前日历日给定特定时区的所有现有文档?我想我会把Moment Timezone和Mongoose捆绑在一起,但是我想知道是否已经有了这个代码,所以我不必从头开始,谢谢。

    1 回复  |  直到 6 年前
        1
  •  1
  •   mickl    6 年前

    假设你有一个收藏 col 随场 dateTime 类型的 BSON date 解释为 UTC . 那么你要拿到12月25日的所有文件 America/New_York 时区(日历日在UTC之后5小时开始)。做你能用的 $dateFromParts 聚合框架中的运算符,并将时区作为参数传递:

    db.col.aggregate([
        {
            $match: {
                $expr: {
                    $and: [
                        { $gte: [ "$dateTime", { $dateFromParts: { 'year' : 2018, 'month' : 12, 'day': 25, timezone: 'America/New_York'  } } ] },
                        { $lte: [ "$dateTime", { $dateFromParts: { 'year' : 2018, 'month' : 12, 'day': 26, timezone: 'America/New_York'  } } ] }
                    ]
                }
            }
        }
    ])
    

    timezone 表达式可以是 Olson timezone identifier (像 美洲/纽约 )或类似的UTC偏移量 +05:00