收藏
回答

求助!请问如何截取日期字段的部分进行group?

日期字段是‘YYYY-mm-dd H:M:S’格式,现有需求是按照'YYYY-mm-dd',或者‘YYYY-mm’这样的格式group,尝试过在_id里用''old_date'.substr(x, y)'无效,也试了project用'old_date'.substr(x, y)转换成new_date的方法也无效,

至于开发文档样例,说实话看的一头雾水

await db.collection('list')
        .aggregate()
        .match({
          name: event.name,
          old_date: db.RegExp({
            regexp: event.param,
            option: 'i',
          })
        })
        .project({
          new_date: '$old_date'.substr(0,10),//此处substring也试过
          sum_value: 1,
        })
        .group({
          _id: {
            new_date:'$new_date',//此处用old_date: '$old_date'.substr(0,10)无效
          },
          total_value: $.sum('$sum_value'),
        })
        .end()
回答关注问题邀请回答
收藏

2 个回答

  • 李明
    李明
    2020-06-14

    addfield 时间做为一个字段

    然后用 date 做为 group _id 中的一个参数

    db.collection('####').aggregate()

      .addFields({

        tempDate:$.dateToString({

          date: '$startTime',

          format:'%Y-%m-%d'

        }),

    })

      .group({

        _id: {

          tempDate: '$tempDate',

        },

      })

      .end()


    2020-06-14
    有用
    回复
  • 毕鲜生
    毕鲜生
    2020-03-24

    如果实在无解,只能是添加几个用来group的字段了,但是这样感觉也太sb了吧...

    2020-03-24
    有用
    回复
登录 后发表内容
问题标签