Mongodb:Concat的月份和年份

时间:2019-08-27 14:26:38

标签: mongodb

我正在使用汇总来确定用户连接到我的平台的月份。

为此,我进行了以下汇总:

 { 
        "$project" : {
          cuid: 1, username: 1, creationDate: 1, language: 1, favorites: 1, active: 1, company: { cuid: 1, name: 1, logoUrl: 1, type: 1 }, connectionLog: 1,
      profile: { $cond: ['$active', '$profile', null] },
            "connectionMonth" : {
                "$cond" : [
                    {
                        "$ifNull" : [
                            "$connectionLog", 
                            0.0
                        ]
                    }, 
                    {
                         $month: "$connectionLog" 
                    }, 
                    -1.0
                ]
            }, 

        }
    }, 

它按预期工作,唯一的问题,我想让connectionMonth输出Month + Year。像07.2019这样的东西会很棒。我试着迷住了,但是没有用。

1 个答案:

答案 0 :(得分:1)

我们首先需要将monthyear转换为字符串。以下查询可以为我们提供预期的输出:

db.collection.aggregate([
    {
        $project:{
            "connectionMonth":{
                $concat:[
                    {
                        $toString:{
                            $month:"$connectionLog"
                        }
                    },
                    ".",
                    {
                        $toString:{
                            $year:"$connectionLog"
                        }
                    }
                ]
            }
        }
    }
]).pretty()

第二种方法:

db.collection.aggregate([
    {
        $project:{
            "connectionMonth":{ 
                "$dateToString": {
                    "date": "$connectionLog",
                    "format": "%m.%Y",
                } 
            }
        }
    }
]).pretty()