MongoDB - FieldPath'%Y-%m-%d'不以$开头

时间:2017-02-27 12:33:33

标签: mongodb grouping aggregation-framework

  

断言:命令失败:{           " 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 }
        }
    }
]);

2 个答案:

答案 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 }
        }
    }
]);