Mongodb Query: стадия матча по соглашению - PullRequest
0 голосов
/ 21 декабря 2018

Я столкнулся с проблемой, связанной с агрегацией.

Я запускаю эту агрегацию:

db.Metriques.aggregate([
   {
      "$match":{
         "application":"RDOCUI"
      }
   },
   {
      "$project":{
         "uploadedRefs":1,
         "uploadedKb":1,
         "downloadedRefs":1,
         "downloadedKb":1,
         "year":{
            "$year":"$timestamp"
         },
         "month":{
            "$month":"$timestamp"
         },
         "day":{
            "$dayOfMonth":"$timestamp"
         }
      }
   },
   {
      "$group":{
         "_id":{
            "year":"$year",
            "month":"$month",
            "day":"$day"
         },
         "up-refs":{
            "$sum":"$uploadedRefs"
         },
         "up-kbs":{
            "$sum":"$uploadedKb"
         },
         "down-refs":{
            "$sum":"$downloadedRefs"
         },
         "down-kbs":{
            "$sum":"$downloadedKb"
         }
      }
   }
]);

Результат:

{
   "_id":{
      "year":2018,
      "month":12,
      "day":20
   },
   "up-refs":NumberLong(0),
   "up-kbs":NumberLong(0),
   "down-refs":0,
   "down-kbs":NumberLong(526)
}{
   "_id":{
      "year":2018,
      "month":12,
      "day":18
   },
   "up-refs":NumberLong(6),
   "up-kbs":NumberLong(3156),
   "down-refs":0,
   "down-kbs":NumberLong(7890)
}{
   "_id":{
      "year":2018,
      "month":12,
      "day":12
   },
   "up-refs":NumberLong(0),
   "up-kbs":NumberLong(0),
   "down-refs":0,
   "down-kbs":NumberLong(1299972)
}{
   "_id":{
      "year":2018,
      "month":11,
      "day":14
   },
   "up-refs":NumberLong(1),
   "up-kbs":NumberLong(94478),
   "down-refs":0,
   "down-kbs":NumberLong(0)
}{
   "_id":{
      "year":2018,
      "month":12,
      "day":10
   },
   "up-refs":NumberLong(0),
   "up-kbs":NumberLong(0),
   "down-refs":0,
   "down-kbs":NumberLong(0)
}{
   "_id":{
      "year":2018,
      "month":12,
      "day":11
   },
   "up-refs":NumberLong(5),
   "up-kbs":NumberLong(101468883),
   "down-refs":0,
   "down-kbs":NumberLong(1722138580)
}{
   "_id":{
      "year":2018,
      "month":12,
      "day":4
   },
   "up-refs":NumberLong(1),
   "up-kbs":NumberLong(94478),
   "down-refs":0,
   "down-kbs":NumberLong(47805868)
}

Послечто я добавил этот этап сопоставления при агрегации:

{
   "$match":{
      "$or":[
         {
            "up-refs":{
               "$gte":{
                  "$numberLong":"1"
               }
            }
         },
         {
            "up-kbs":{
               "$gte":{
                  "$numberLong":"10"
               }
            }
         }
      ]
   }
}

Тем не менее, результат пустой.

Полная агрегация:

db.Metriques.aggregate([
   {
      "$match":{
         "application":"RDOCUI"
      }
   },
   {
      "$project":{
         "uploadedRefs":1,
         "uploadedKb":1,
         "downloadedRefs":1,
         "downloadedKb":1,
         "year":{
            "$year":"$timestamp"
         },
         "month":{
            "$month":"$timestamp"
         },
         "day":{
            "$dayOfMonth":"$timestamp"
         }
      }
   },
   {
      "$group":{
         "_id":{
            "year":"$year",
            "month":"$month",
            "day":"$day"
         },
         "up-refs":{
            "$sum":"$uploadedRefs"
         },
         "up-kbs":{
            "$sum":"$uploadedKb"
         },
         "down-refs":{
            "$sum":"$downloadedRefs"
         },
         "down-kbs":{
            "$sum":"$downloadedKb"
         }
      }
   },
   {
      "$match":{
         "$or":[
            {
               "up-refs":{
                  "$gte":{
                     "$numberLong":"1"
                  }
               }
            },
            {
               "up-kbs":{
                  "$gte":{
                     "$numberLong":"10"
                  }
               }
            }
         ]
      }
   }
]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...