断言:命令失败:{ " OK" :0, " ERRMSG" :" FieldPath'%Y-%m-%d'并不以$"开头, "代码" :16873 }:聚合失败
我在下面有一个查询,它给了我一个我没有摆脱的错误。
db.collection.aggregate([
{
$match: {
'insertedAt': {
$gte: ISODate("2017-02-23T01:00:01Z")
}
}
},
{
$group : {
_id : {
isDummy: '$isDummy',
$dateToString: {
format: '%Y-%m-%d',
date: '$insertedAt'
}
},
count: { $sum: 1 }
}
}
]);
答案 0 :(得分:1)
$dateToString是一个聚合运算符,它将日期类型转换为字符串。
更改为
_id: {
isDummy: '$isDummy',
insertedAt: {
$dateToString: {
format: '%Y-%m-%d',
date: '$insertedAt'
}
}
}
答案 1 :(得分:1)
$dateToString是一个表达式,用于将日期转换为所需的格式。使用下面的一个,你准备好了。
db.collection.aggregate([
{
$match: {
'insertedAt': {
$gte: ISODate("2017-02-23T01:00:01Z")
}
}
},
{
$group : {
_id : {
isDummy: '$isDummy',
insertedAt: {
$dateToString: {
format: '%Y-%m-%d',
date: '$insertedAt'
}
}
},
count: { $sum: 1 }
}
}
]);