我的MongoDB数据库有一个结构
{ "_id" : ObjectId("5c1ccc20fc0f60769227d455"), "type" : 0, "id" : "hwJyzAHyfjXUlrGhblT7txWd", "userowner" : 1.0, "campid" : "9548", "date" : 1545391136, "useragent" : "mozilla/5.0 (windows nt 10.0; win64; x64; rv:65.0) gecko/20100101 firefox/65.0", "domain" : "", "referer" : "", "country" : "en", "language" : "en-US", "languages" : [ "en-US", "en" ], "screenres" : [ "1920*1080" ], "avscreenres" : [ "1080*1858" ], "webgl" : "angle (nvidia geforce gtx 1060 6gb direct3d11 vs_5_0 ps_5_0)", "hash" : 123, "timezone" : -180, "result" : true, "resultreason" : "learning", "remoteip" : "0.0.0.0" }
每个a文档都有一个带有bool值vield“result”。我进行聚合选择:
db.getCollection('clicks').aggregate([ { $match: {userowner: 1, date:{$gte: 0, $lte: 9545392055}} }, { $group : {_id : "$campid", number: {$sum: 1}}} ])
并得到一个结果:
/* 1 */ { "_id" : "4587", "number" : 2.0 } /* 2 */ { "_id" : "9548", "number" : 1346.0 }
如何计算字段“result”中值“true”和“false”的数量,并得到如下结果:
/* 1 */ { "_id" : "4587", "number" : 2.0, "passed":100, "blocked":120 } /* 2 */ { "_id" : "9548", "number" : 1346.0, "passed":100, "blocked":120 }
我希望这能按照你的要求工作。
db.getCollection('clicks').aggregate(
[
{
$match: {
userowner: 1, date: {
$gte: 0, $lte: 9545392055
}
}
},
{
$group: {
_id: "$campid", passed: {
$sum: {
$cond:
[
{ $eq: ["$result", true] },
1, 0
]
}
},
blocked: {
$sum: {
$cond:
[
{
$eq: ["$result", false]
}
, 1, 0]
}
},
number: { $sum: 1 }
}
},
{
$project: {
_id: 0,
campid: "$_id",
number: 1,
passed: 1,
blocked: 1
}
}
])
输出:-
{
"passed" : 3,
"blocked" : 2,
"number" : 5,
"campid" : "4587"
}
{
"passed" : 2,
"blocked" : 1,
"number" : 3,
"campid" : "9548"
}
有关更多信息,请参阅$GROUP、$COND和$EQ。
问题内容: 根据上述问题,我用Val给定的脚本进行的elasticsearch查询在最后一周之前都可以正常工作。我们已经升级了ES版本,但突然停止了工作。 现在突然我的ES停止使用脚本中包含“ as Integer”的代码。任何人都可以检查和帮助。 我尝试了给定的查询,现在它抛出以下异常。 我作为参数传递的查询是: 由于我的索引器在该字段中包含1、2、4、6、14个值。但是执行完此查询后,我只得到
我想在多个字段上进行日期直方图/范围聚合,并将结果存储在其他集合/索引中。因此,我可以在小时范围内使用查询/聚合使doc_count和。 聚合如下: 结果不出所料: 假设我解析了响应,并尝试将结果存储在其他索引/集合中。 存储聚合结果的最佳方式是什么,这样我就可以进行其他查询/聚合,以求和不同小时范围之间的“doc_count”? 例如:在“2016-07-17t00:00.000z”-“2016
我有一个数据库,里面有澳大利亚800家不同的酒吧、俱乐部和餐馆。 我想为我的网站建立一个链接列表,统计不同郊区和主要类别的不同场馆的数量。 像这样: 餐厅,伯恩山(15家) 餐厅,道斯角(6家) 俱乐部,悉尼(138家) 我可以通过首先获得所有场馆来艰难地完成这项任务。然后运行一个场地。distinct('details.location.Suburban')获得所有独特的郊区。 从这里,我可以运
问题内容: 表格如下: 我想获取班级列表,以及每个班级-属于每个班级的学生人数。我怎样才能做到这一点? 问题答案: 您需要这样做-
我使用criteriaBuilder为特定类型创建criteriaQuery。 我需要在使用EntityManager的createQuery方法时限制查询的结果。 但我也需要知道有多少结果我可以得到没有限制,因为我需要它来计算页数的分页系统。 所以我使用了另一个criteriaQueryObject来创建一个选择计数
我有以下JPA实体(getter、setter和非相关字段省略): 我的目标是使用JPQL或criteriaAPI实现查询,它将返回每天的平均事务量和最大事务量。 产生预期结果的原生SQL查询(MySQL数据库)如下所示: 遗憾的是,不鼓励使用本机 SQL 查询,并且 JPQL 不允许在 where 子句中使用子查询。 提前谢谢你。 附加: 我从以下Spring数据查询开始: 但显然没有用: 我可