Можно ли вводить данные приведения в конвейер агрегации на MongoDB?

Когда мне нужно агрегировать вещи по дате, используяaggregate Команда на MongoDB, я обычно делаю это:

 db.mycollection.aggregate(
 {
        $project: {
            day: {$dayOfMonth: "$date"},
            mon: {$month: "$date"},
            year: {$year: "$date"},
        }
    },
    {
        $group: {
            _id : {day: "$day", mon: "$mon", year: "$year"},
            count: {$sum: 1}
        }
    }
 )

и в конечном итоге объединитьday, mon, а такжеyear поля в строку даты в приложении. Однако по многим причинам иногда я хочу объединить поля перед тем, как покинуть базу данных, поэтому я сначала попытался:

 db.mycollection.aggregate(
 {
        $project: {
            day: {$dayOfMonth: "$date"},
            mon: {$month: "$date"},
            year: {$year: "$date"},
        }
    },
    $project: {
            datestr: {
                $concat : ["$year", "-", "$month", "-", "$day"]
            }
        }
    },

    {
        $group: {
            _id : {day: "$day", mon: "$mon", year: "$year"},
            count: {$sum: 1}
        }
    }
 )

Это не сработает, потому что$concat ожидает строк иday, mon а такжеyear целые числа. Итак, мой вопрос: могу ли я набрать поле с$project операция?

Ответы на вопрос(1)

Ваш ответ на вопрос