如何从Mongoose / MongoDB中的当前日历日获取文档

时间:2018-12-25 19:00:07

标签: node.js mongodb mongoose momentjs

我试图用谷歌搜索它,但是什么也没发现,很惊讶,所以我会为了搜索引擎而问这个问题。

是否有一种方法可以获取给定特定时区的当前日历日的所有现有文档?我想我会一起使用矩时区和猫鼬,但是我想知道是否已经有相应的代码了,所以我不必从头开始。

1 个答案:

答案 0 :(得分:1)

假设您有一个集合col,其字段dateTime的类型为BSON date,被解释为 UTC 。然后,您想要获取America/New_York时区(日历日从UTC后5小时开始)的12月25日的所有文档。为此,您可以在Aggregation Framework中使用$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