Мон go фильтр агрегации с удалением массива - PullRequest
0 голосов
/ 27 марта 2020

У меня есть следующая структура в моем мон go дБ

{
{ 
"macid" : "40:B3:6B:70:00:78", 
"readings" : [
              { 
               "device" : "20200319111309312",
                "eventtype" : "14",
                 "timestamp" : "1585281079281", 
                 "date" : ISODate("2020-03-27T03:51:19.281Z")
              },{ 
               "device" : "20200319111309313",
                "eventtype" : "14",
                 "timestamp" : "1585281079282", 
                 "date" : ISODate("2020-02-27T03:51:19.281Z")
              }]
 },{ 
"macid" : "40:B3:6B:70:00:78", 
"readings" : [
              { 
               "device" : "20200319111309314",
                "eventtype" : "11",
                 "timestamp" : "1585281079284", 
                 "date" : ISODate("2020-02-27T04:51:19.281Z")
              },{ 
               "device" : "20200319111309313",
                "eventtype" : "14",
                 "timestamp" : "1585281079286", 
                 "date" : ISODate("2020-01-27T05:51:19.281Z")
              }]
 },
{ 
"macid" : "40:89:6B:70:00:45", 
"readings" : [
              { 
               "device" : "20200319111309314",
                "eventtype" : "11",
                 "timestamp" : "1585281079284", 
                 "date" : ISODate("2020-02-27T04:51:19.281Z")
              },{ 
               "device" : "20200319111309313",
                "eventtype" : "14",
                 "timestamp" : "1585281079286", 
                 "date" : ISODate("2020-01-27T05:51:19.281Z")
              }]
 }
}

Я хочу удалить документ в массиве чтений на основе старого (на основе ключа даты) 10 документа в массиве чтений или на основе на ключе даты, который старше, чем на 3 недели раньше. Вот мой код для агрегации.

[{$ group: {_id: "$ macid", log: {"$ pu sh": "$ readings"}}}, {$ размотка: {путь: "$ log",

}}, {$ project: {count: {$ size: "$ log"}, показания: "$ log"}}, {$ match: { "count": {$ gte: 10}}}, {$ sort: {"readings.date": -1}}, {}]

приведенный выше код дает условие фильтра, но как использовать операцию $ pull?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...