【发布时间】:2022-01-01 23:49:26
【问题描述】:
我有一个这样的数据集:
{
ip: 1.1.1.1,
process: 123,
type: failure,
date: 2021-04-01
},
{
ip: 1.1.1.2,
process: 124,
type: failure,
date: 2021-03-01
},
{
ip: 1.1.1.1,
process: 123,
type: failure,
date: 2021-02-01
},
{
ip: 1.1.1.1,
process: 123,
type: success,
date: 2021-01-01
}
如何获取给定 IP 地址和进程的连续失败计数?例如,给定上面的数据集,如果我要检查 ip 1.1.1.1 在最后一次成功之前对进程 123 失败了多少次,我应该得到 2。但是,如果成功记录是最后一条记录,那么我应该得到 0。
到目前为止我所拥有的是:
activityLog.find([
{
$match: {
ip: "1.1.1.1",
process: "123"
},
},
{
$sort: {
date: -1,
},
},
{
$limit: 10,
},
{
$project: {
_id: 0,
type: 1,
},
},
]);
这给了我所有类型的列表 - 排序和匹配
【问题讨论】:
标签: mongodb mongoose mongodb-query