У меня есть коллекция в Монго, в которой каждый документ содержит массив временных отметок, и мне нужно найти (объединить) документы с наибольшим количеством временных отметок за данный период времени.
Я знаю, что мне нужно использовать $ aggregate, но мне сложно понять, как отфильтровать и подсчитать количество элементов в массиве.
Пример документа выглядит так:
{
"_id" : "en.m.wikipedia.org",
"times" : [
ISODate("2019-06-03T14:19:33.405Z"),
ISODate("2019-06-03T14:19:52.394Z"),
ISODate("2019-06-03T14:29:15.474Z"),
ISODate("2019-06-03T14:29:30.768Z"),
ISODate("2019-06-03T14:30:25.578Z"),
ISODate("2019-06-03T15:00:22.493Z"),
ISODate("2019-06-03T15:05:03.759Z"),
ISODate("2019-06-03T15:18:05.677Z"),
ISODate("2019-06-03T15:38:22.771Z"),
ISODate("2019-06-03T15:44:51.025Z"),
ISODate("2019-06-03T15:45:15.336Z"),
ISODate("2019-06-03T15:49:06.227Z"),
ISODate("2019-06-03T17:10:19.396Z"),
ISODate("2019-06-03T18:02:37.093Z"),
ISODate("2019-06-03T18:39:29.812Z"),
ISODate("2019-06-03T19:06:49.310Z"),
ISODate("2019-06-03T19:46:52.381Z"),
ISODate("2019-06-03T20:16:45.675Z"),
],
"source" : ["Admin"]
}
Идеальный результат будет примерно таким: счет будет отображать только количество временных отметок за данный период времени:
[
{_id: "en.m.wikipedia.org", count: 12},
{_id: "facebook.com", count: 7},
etc...
]