Я пытаюсь использовать 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}
}
}
])