Ниже приведена структура моей коллекции
_id advertisedTo advertisedOn
---------------------------------------------------------
5df72e39179e3225dc506f5b 923336749125 2019-12-14
5df72e39179e3225dc506f5c 923336745129 2019-12-14
5df72e39179e3225dc506f5d 923336749779 2019-12-14
5df72e57179e3225dc506f5e 923336749125 2019-12-14
5df72e57179e3225dc506f5f 923336749330 2019-12-15
5df72e57179e3225dc506f60 923336749335 2019-12-15
5df73811179e3225dc506f61 923336749335 2019-12-15
5df73811179e3225dc506f62 923336749335 2019-12-15
5df73811179e3225dc506f63 923336749335 2019-12-15
5df741c3179e3225dc506f65 923336742356 2019-12-15
5df741c3179e3225dc506f66 923336739925 2019-12-15
5df741c3179e3225dc506f67 923336725825 2019-12-15
5df74372179e3225dc506f69 923336014725 2019-12-16
5df74372179e3225dc506f6a 923336584915 2019-12-16
5df74372179e3225dc506f6b 923006749120 2019-12-16
Что я хочу сделать, так это получить лучшие рекламные номера на основе количества последних трех дней, которые я пробовал ниже заданного запроса, но это не дает мне точного результата.
db.getCollection("advertisementhistories").aggregate([{$group:{_id:{advertisedOn:"$advertisedOn",advertisedTo:"$advertisedTo"},myCount: { $sum : 1 }}},{ $sort : { myCount : -1},{ $limit : 3 }])
чего я хочу
advertisedOn advertisedTo myCount
---------------------------------------
2019-12-14 923336749125 2
2019-12-14 923336745129 1
2019-12-14 923336749779 1
2019-12-15 923336749335 4
2019-12-15 923336742356 1
2019-12-15 923336739925 1
2019-12-16 923336014725 1
2019-12-16 923336584915 1
2019-12-16 923006749120 1
Спасибо за помощь
advertisedTo
из groub с помощью операции и выполняете groub только с помощьюadvertisedOn
16.12.2019advertisedTo
в массив, вы можете проверить ответ: stackoverflow.com/questions/47332895/ 16.12.2019$match
на три дня. 16.12.2019