Я должен агрегировать результат по месяцу данного документа.Рассмотрим в качестве моего документа следующее:
{
"_id" : ObjectId("5b3314a12b05b1b247366f48"),
"email" : "abc@gmail.com",
"qwerty":[{
"id" : "5ba4ebbad1b5eaf038841302",
"status" : "inprogress",
"Date" : "2018-08-20"
},
{
"id" : "5ba4ebbad1b5eaf038841303",
"status" : "inprogress",
"Date" : "2018-08-20"
}]
Вот мой запрос:
var query =[
{ $match: {"email":email} },
{$unwind: "$courses" },
{$group:{_id:{$substrCP: ["$qwerty.Date", 5, 2]},count:{$sum:1}}}
];
Он работает правильно.Но я $substrCP: ["$qwerty.Date", 5, 2]
основан на формате даты "2018-08-20", что если "20-08-2018" ??Таким образом, можно изменить приведенный выше запрос, чтобы он соответствовал типу nay.
Также я попытался с новым Date("").getMonth()
, но он отображается как "NaN", я узнал, что его нельзя использовать внутри группы.
Пожалуйста, предложите свои идеи.