我正在尝试使用 ObjectId 作为创建日期持有者,并且在尝试进行聚合查询时遇到了一些问题。特别是我们希望使用日期聚合运算符按月份对文档进行分组,但该运算符显然不适用于 ObjectId。有没有办法解决它,还是我必须开始为每个文档使用单独的 CreationTime 字段?
这是我正在尝试的查询-
db.People.aggregate([
{
$match: {
$or: [{"Name":"Random1"}, {"Name":"Random2"}]
}
},
{
$project: {
Name: "$Name",
Year: {$year: "$_id"},
Month: {$month: "$_id"}
}
},
{
$group: {
_id: {Name: "$Name", Year: "$Year", Month: "$Month"},
TotalRequests: {$sum:1}
}
}
])