У меня есть следующая структура в моем мон 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?