我有一个四阶段聚合查询,其形式为match->group->project->sort。聚合工作正常,并生成如下所示的数组。
{ count: 48, ISP: 'LEASEWEB USA', percentRisky: 100 },
{ count: 51, ISP: 'ARETI INTERNET LTD', percentRisky: 100 },
{ count: 82, ISP: 'TINET SPA', percentRisky: 100 },
{ count: 109, ISP: 'GIGLINX', percentRisky: 100 },
{ count: 142, ISP: 'EGIHOSTING', percentRisky: 100 },
{ count: 857, ISP: 'VERSAWEB, LLC', percentRisky: 100 }
下面是我的聚合查询。我有没有办法只显示“计数”字段大于500的结果?我试图添加到项目阶段,但没有运气。
{ $match : { //match to documents which are from all clients, from last three days, and scored
org : {"$in" : clientArray },
frd : {$gt : new Date(JSON.stringify(util.lastXDates( 3 )))},
sl : true
}},
{ $group : { //group by isp, get total count, and get count of risky
_id : "$gog",
count : { $sum : 1 },
countRisky : { $sum : { $cond : { if : { $gte : [ "$scr", 65 ] } ,
then : 1,
else : 0
}} }
}},
{ $project : { //rename _id to isp, only show percent risky, and the count
_id : 0,
ISP : "$_id",
percentRisky : { $multiply : [{ $divide : ["$countRisky", "$count"] }, 100] },
count : 1
}},
{ $sort : { //sort by percent risky
percentRisky : 1,
count : 1
您可以在管道中包括多个$match
阶段,因此在末尾添加第二个$match
:
...
{$match: {count: {$gt: 500}}}
问题内容: 如果我有一个PHP数组: 带有值: 我有一个变量: 如何返回值?: 因为那是数组中最接近38(递增)的值? 问候, 泰勒 问题答案:
今天我注意到这个node.js代码: 给出输出 这很奇怪;如果某物不等于0或大于0,那么它为什么大于或等于0呢?发生什么事了?
目前,我有个问题。我可以在mongodb中使用聚合函数查询相应的数据,但是在使用springdatamongodb后,我发现lookup不能使用变量将string转换为objectid,那么该如何编写这个聚合函数呢 如何在spring data mogodb中将其写成mongodb表达式
我需要筛选此查询,以便不显示值为的文档。当前,我的代码显示以下结果: 我需要一些过滤器,使消失,以便它显示我作为第一个值:。 我以前执行过以下操作:
我正在尝试用Angular 7建立一个动态研究。我正在用多个键从API中获取一个数组:[_id= 我用ngFor显示我所有的结果,我已经用我找到的教程创建了一个过滤管道… 这是我的研究部分: 这是我的过滤管功能: 但是这只会过滤这样的数组:[
我有一个“name”集合,当我执行POST调用时,我会搜索数据库中是否有与SSN匹配的记录,并创建一个具有相同name_id的记录,基本上是为了链接具有相同SSN的记录。 同时,我将为每个记录创建NameDetails。 它的目的是,当我通过SSN执行GET调用时,它应该从Name collection及其相应的NameDetails中获取所有具有匹配SSN的记录。 NameDetails集合:{