node.js - 如何在 Mongoose/MongoDB 中获取当前日历日的文档

标签 node.js mongodb mongoose momentjs

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

有没有办法在给定特定时区的情况下获取当前日历日的所有现有文档?我想我将把时刻时区和 Mongoose 联系在一起,但我想知道是否已经存在这方面的代码,这样我就不必从头开始,谢谢。

最佳答案

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

关于node.js - 如何在 Mongoose/MongoDB 中获取当前日历日的文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53924909/

相关文章:

node.js - NodeJs 中被拒绝的 Promise 解析

node.js - 如何从 Firebase 函数中为 Google 上的 Actions 调用第三方 Rest API

node.js - 如何修复 XMLHttpRequest 已被 CORS 策略阻止

node.js - 如何使用 Mongoose 获取文档数量?

node.js - 帐户链接期间 FB bot PSID 检索

mongodb - 如何在 Ubuntu 上安装 mongodb-clients 最新版本?

macos - 在 OS X 上测试多个 mongodb 实例

node.js - 如何比较数组mongodb查询

node.js - 将默认值设置为属性的新列, Mongoose 查询

node.js - 如何在 MongoDB 的正则表达式中搜索与给定字符串的匹配项?