Запрашивать период фиксированной длины, удовлетворяющий некоторому условию в базе mongodb, на ежедневных данных

#mongodb

#mongodb

Вопрос:

Что я пытаюсь сделать, так это сгенерировать список стран, в которых за 2 недели подряд было зарегистрировано 0 новых случаев после регистрации более 50 накопленных случаев.

Например, в какой-то стране за 2 недели подряд зарегистрировано 0 новых случаев, а до этого накопилось более 50 случаев.

Возможно ли запросить период фиксированной длины, удовлетворяющий некоторому условию в mongodb?

итоговые данные — это сумма ежедневных данных за каждую неделю, а не накопленные еженедельные результаты.

Данные после группировки:

 /* 1 */
{
    "_id" : {
        "groupByCountry" : "Afghanistan",
        "groupByWeek" : 0
    },
    "totalNewCases" : 0.0
},

/* 2 */
{
    "_id" : {
        "groupByCountry" : "Afghanistan",
        "groupByWeek" : 1
    },
    "totalNewCases" : 0.0
},

/* 3 */
{
    "_id" : {
        "groupByCountry" : "Afghanistan",
        "groupByWeek" : 2
    },
    "totalNewCases" : 0.0
},

/* 4 */
{
    "_id" : {
        "groupByCountry" : "Afghanistan",
        "groupByWeek" : 3
    },
    "totalNewCases" : 0.0
},

/* 5 */
{
    "_id" : {
        "groupByCountry" : "Afghanistan",
        "groupByWeek" : 4
    },
    "totalNewCases" : 0.0
},

/* 6 */
{
    "_id" : {
        "groupByCountry" : "Afghanistan",
        "groupByWeek" : 5
    },
    "totalNewCases" : 0.0
},

/* 7 */
{
    "_id" : {
        "groupByCountry" : "Afghanistan",
        "groupByWeek" : 6
    },
    "totalNewCases" : 0.0
},

/* 8 */
{
    "_id" : {
        "groupByCountry" : "Afghanistan",
        "groupByWeek" : 7
    },
    "totalNewCases" : 0.0
},

/* 9 */
{
    "_id" : {
        "groupByCountry" : "Afghanistan",
        "groupByWeek" : 8
    },
    "totalNewCases" : 1.0
},

/* 10 */
{
    "_id" : {
        "groupByCountry" : "Afghanistan",
        "groupByWeek" : 9
    },
    "totalNewCases" : 3.0
},

/* 11 */
{
    "_id" : {
        "groupByCountry" : "Afghanistan",
        "groupByWeek" : 10
    },
    "totalNewCases" : 6.0
},

/* 12 */
{
    "_id" : {
        "groupByCountry" : "Afghanistan",
        "groupByWeek" : 11
    },
    "totalNewCases" : 14.0
},

/* 13 */
{
    "_id" : {
        "groupByCountry" : "Afghanistan",
        "groupByWeek" : 12
    },
    "totalNewCases" : 82.0
},

/* 14 */
{
    "_id" : {
        "groupByCountry" : "Afghanistan",
        "groupByWeek" : 13
    },
    "totalNewCases" : 164.0
},  

Ответ №1:

Да, вы можете использовать

Оператор $ gte, $ lte, $ gt, $ lt для проверки этого условия в MongoDB

 db.collectionname.find({totalNewCases:{$gte:5}});
  

Операторы запроса сравнения