我正在使用汇总来确定用户连接到我的平台的月份。
为此,我进行了以下汇总:
{
"$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这样的东西会很棒。我试着迷住了,但是没有用。
答案 0 :(得分:1)
我们首先需要将month
和year
转换为字符串。以下查询可以为我们提供预期的输出:
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()