【发布时间】:2019-05-24 07:04:04
【问题描述】:
我试图用谷歌搜索,但一无所获,很惊讶,所以为了搜索引擎,我会问这个问题。
在给定特定时区的情况下,有没有办法获取当前日历日的所有现有文档?我想我会同时使用时刻时区和 Mongoose,但我想知道代码是否已经存在,所以我不必从头开始,谢谢。
【问题讨论】:
标签: node.js mongodb mongoose momentjs
我试图用谷歌搜索,但一无所获,很惊讶,所以为了搜索引擎,我会问这个问题。
在给定特定时区的情况下,有没有办法获取当前日历日的所有现有文档?我想我会同时使用时刻时区和 Mongoose,但我想知道代码是否已经存在,所以我不必从头开始,谢谢。
【问题讨论】:
标签: node.js mongodb mongoose momentjs
假设您有一个集合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
【讨论】: