mongoose如何按天分组查询?

已有数据格式

{ 
    "_id" : ObjectId("5eb7ac7fc028951db811e99a"), 
    "tags" : [
        "5ea2a87ca7b969e25ce2f292"
    ], 
    "name" : "test1", 
    "project_id" : ObjectId("5eb7ab24c028951db811e997"), 
    "cycleCount" : NumberInt(10), 
    "cycleUnit" : "min", 
    "cardTime" : ISODate("2020-05-10T07:25:48.975+0000"), 
    "recordTime" : ISODate("2020-05-10T07:25:48.975+0000"), 
    "__v" : NumberInt(0)
}

目前希望按照字段recordTime进行分组查询,也就是recordTime相同(日期)的分为一组

我自己目前使用的方法是

const result = await Model.aggregate([
        {
            $match: params,
        },
        {
            $project : {
                    day : {$substr: [{"$add":["$recordTime", 28800000]}, 0, 10] },
                },
        },
        {
            $group: {
                _id:"$day", 
                dailyList: { $push: { name: "$name", _id: "$_id" }}
            },
        },

返回的效果虽然和我想要的差不多了,但是存在一个问题

就是在$group里的$push我需要把字段一个一个的push进去

请问有什么比较快捷的方法吗?
我是希望dailyList数组的子元素的结构是和表结构一样的效果

阅读 2.3k
1 个回答
新手上路,请多包涵

你好 我也遇到了这个问题 请问有什么方法解决吗

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进