javascript - 在 Mongoose 中聚合时无法使用 moment.js

标签 javascript node.js mongodb date momentjs

我正在使用聚合管道,如下所示:

Model.aggregate([
  $project:{
    expiry: moment("$date_expired").format('h')}]
,function(err,res){...});

“$date_expired” 是架构中的日期。

但是,当我尝试从上述聚合中获取结果时,出现错误 FieldPath“无效日期”不以 $ 开头

可能是什么错误以及如何解决它?

最佳答案

您可以聚合使用$function,但您应该将 mongodb 升级到 v4.4

     Model.aggregate([
     { $addFields:{
        expiry: {
          $function:{
            body:function(date_expire){return moment(date_expired).format('h')},
           args:['$date_expire'],
           lang:"js"
        }}
     }])

关于javascript - 在 Mongoose 中聚合时无法使用 moment.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37893781/

相关文章:

node.js - 如何对 node.js 库进行本地更改?

mongodb 3.4.2 InvalidIndexSpecificationOption错误: The field 'unique' is not valid for an _id index specification

django - 向现有的 django Mongoengine 模型添加了新的 bool 字段,但之后无法过滤该字段

javascript - 如何在jquery中提交表单之前区分两次特定的点击?

javascript - 未捕获的类型错误 : Cannot read property 'src' of undefined

javascript - 求250以下的素数之和

javascript - Mongodb/mongoose 只保存一次然后创建 500 错误

javascript - 如何在 CouchDB/Node.js 中使用 Cradle 删除键值对?

javascript - 为什么服务器在发布身份验证信息时说需要 "name"?

javascript - cloneNode() 在 Internet Explorer 10 和 11 中更改属性值