【问题标题】:How to use $dateToString in mongoose如何在猫鼬中使用 $dateToString
【发布时间】:2019-12-17 05:15:58
【问题描述】:

我在 mongoDB 中有这个聚合。

db.collection.aggregate([
  {
    "$group": {
      "_id": {
          "$dateToString": {
              "format": "%Y-%m-%d",
              "date": {
                    "$add": [
                      "$timestamp",
                      18000000
                    ]
              }
          }
        },
      "list": {
        "$addToSet": "$timestamp"
      }
    }
  }
])

但是当我将此聚合与猫鼬一起使用时,它会显示此错误。

{
    "ok": 0,
    "errmsg": "unknown group operator '$dateToString'",
    "code": 15952,
    "codeName": "Location15952",
    "name": "MongoError"
}

我按照这个链接搜索了 mongoose 中没有 $dateToString。
https://mongoosejs.com/docs/api/aggregate.html
如何修改我的 mongoDB agrregate for mongoose?非常感谢您阅读。

【问题讨论】:

    标签: mongodb mongoose


    【解决方案1】:

    几个问题:

    • 错误不是来自 mongoose,而是来自 MongoDB 本身
    • $dateToString 先取日期,再取格式
    • $dateToString 仅适用于 MongoDB v3.0(您运行的是 MongoDB >= v3.0 吗?)
    • $dateToString$group _id 运算符中不可用(从技术上讲,它应该是,错误消息说它不是)

    $group 阶段之前添加一个$project 阶段并在那里添加日期转换。 然后你可以按照你在$project中介绍的新领域进行分组。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-02-27
      • 2020-03-06
      • 1970-01-01
      • 1970-01-01
      • 2011-10-25
      • 2021-01-02
      • 2021-09-18
      • 2021-07-29
      相关资源
      最近更新 更多