【问题标题】:How to get documents from current calendar day in Mongoose/MongoDB如何在 Mongoose/MongoDB 中获取当前日历日的文档
【发布时间】:2019-05-24 07:04:04
【问题描述】:

我试图用谷歌搜索,但一无所获,很惊讶,所以为了搜索引擎,我会问这个问题。

在给定特定时区的情况下,有没有办法获取当前日历日的所有现有文档?我想我会同时使用时刻时区和 Mongoose,但我想知道代码是否已经存在,所以我不必从头开始,谢谢。

【问题讨论】:

    标签: node.js mongodb mongoose momentjs


    【解决方案1】:

    假设您有一个集合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(如 America/New_York)或 UTC 偏移量,如 +05:00

    【讨论】:

    • 这个特定的命令似乎对我不起作用,但我想我可以使用带有奥尔森时区标识符的 $dateFromParts 来让它工作,谢谢,我会尽快报告.
    • 是我的错,我没有将 $dateTime 更改为 $createdAt,做了一些测试,非常感谢您的可靠回答!
    猜你喜欢
    • 2016-07-18
    • 1970-01-01
    • 2022-11-24
    • 2015-06-15
    • 2015-11-20
    • 1970-01-01
    • 2019-04-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多