草庐IT

分组码

全部标签

java - Mongodb查询,在文档中搜索数组元素分组并计算每个元素

假设我有一个包含多个文档的集合,其结构如下:{_id:"id12345",objects:["123","456","789"]}现在我想创建一个查询,我在其中传递对象数组并获取数组中每个元素在文档中出现的次数,如下所示:查询输入:["123","321"]输出:{"123":1,"321":0}我只想通过一个查询来完成此操作,传递一个数组,我知道我可以一个一个地轻松完成此操作而不是一个数组,但这不是目的。 最佳答案 您可以在3.6中使用以下聚合。$match过滤输入数组和对象数组之间至少有一个数组匹配的文档。$project与$m

MongoDB 对同一文档中多个字段的结果进行分组和计算

关于MongoDB聚合框架,我能得到你的帮助吗?我试图从以下游戏集合中构建一个英超联赛表:{"_id":ObjectId("5b39fec4b5f8df161d259f36"),"gameWeek":1,"homeTeam":"Arsenal","awayTeam":"Leicester","homeGoals":2,"awayGoals":1},{"_id":ObjectId("5b39ffc2b5f8df161d259f6d"),"gameWeek":2,"homeTeam":"Arsenal","awayTeam":"Sunderland","homeGoals":1,"away

国密SM4分组密码算法

前言密码,是指使用特定变换对数据等信息进行加密保护或安全认证的物项(承载算法、密钥、密文的介质)和技术,主要用于加密和安全认证(身份识别、完整性、抗抵赖性)。密码按照保密等级,又分为核密、普密、商密三种,其中核密、普密用于涉及国家秘密领域,商密用于非涉及国家秘密领域。接下来,我们重点讲一下这个商密。什么是商用密码?商密,全称商用密码,是国家密码局认定的国产密码算法,又称国密算法,为了保障商用密码的安全性,国家商用密码管理办公室制定了一系列密码标准,包括对称算法(SM1、SM4等),非对称算法(SM2、SM9)以及哈希算法(SM3)等等。这些密码标准可以有效保护信息安全所面临的威胁,例如:为防止

mongodb - 按MongoDB中的多个字段分组

这是我的文档结构:{"ip_address":"192.168.133.12","timestamp":"2014-08-28T06:41:24","response":400,"uri":{"term":"Something","page":"10","category":"category10"}}如果我想对单个字段“响应”进行分组,我将按如下方式进行:db.collName.aggregate({$group:{_id:"$response",total:{$sum:1}}});如何按2个或3个字段分组?是否可以对多个字段进行分组,使它们形成具有相似值的聚合?我的意思是这样的:{

spring - 如何使用 Spring Mongo 对两个字段进行分组并根据另一个字段获取一个字段的数组?

我举个例子:集合中的两个条目作者:{"name":"Joe""Book":"A"},{"name":"Joe""Book":"B"}现在,如果我通过springmongo在Mongo中使用聚合函数,基本上只是为了获取名为Joe的书籍,它可以编码为:Aggregationagg=newAggregation(Map.class,group("name","Book"));AggregationResultsresults=mongoTemplate.aggregate(agg,"Author",Map.class);显然我可以通过这种方式获得两张map,一张有条目{"name":"Joe

mongodb - 使用存储的json数据在mongo中分组数据

这是我在我的mongo数据库中的数据:{"_id":ObjectId("556d1c7716efd4a035d8e473"),"products":[{"gtin":77770000222313,"gpc":10000068},{"gtin":77770000222312,"gpc":10000068}]}我如何聚合它以便获得gpc值,然后是gtins下的数组?像这样的东西:{"gpc":10000068,"gtin":[77770000222312,77770000222313]} 最佳答案 使用聚合框架db.collection

MongoDB 按计数分组删除记录

我有很多包含重复地址的记录。基本上,我想删除那些重复地址数超过50但少于300的记录。这是我获取要删除的记录的方式:db.directories.aggregate([{$group:{_id:{address:"$address"},total:{$sum:1}}},{$match:{total:{$gt:50,$lt:300}}},{$sort:{total:-1}}],{allowDiskUse:true}); 最佳答案 可以使用游标方法forEach()迭代从aggregate()返回的游标方法并使用remove()删除文档

mongodb - 跨文档分组和计数?

我有一个包含类似于以下格式的文档的集合:{departure:{name:"abe"},arrival:{name:"tom"}},{departure:{name:"bob"},arrival:{name:"abe"}}然后得到这样的输出:{name:"abe",departureCount:1,arrivalCount:1},{name:"bob",departureCount:1,arrivalCount:0},{name:"tom",departureCount:0,arrivalCount:1}我可以像这样查询特定数据来单独获取计数:db.sched.aggregate([{

javascript - 如何在 Mongoose 中使用分组依据和查找?

我有一个名为“listing”的集合,其中包含metadata和status等字段。metadata是一个包含user对象的对象,status是一个字符串。结构看起来是这样的,{"status":"Active","metadata":{"user":{"urlProfile":"","averageRating":5,"reviewCount":2,"userId":"1244324"}}}现在,状态字段具有诸如"Active"和"Inactive"之类的值。我需要按这些状态分组并按userId进行过滤。所以我在助手内部有一个函数,如下所示,query:function(model,

MongoDB - 查询过去几个小时内创建的所有文档,并按分钟分组?

通过阅读那里的各种文章,我相信这应该是可能的,但我不确定从哪里开始。这就是我想要做的:我想运行一个查询,它会找到在过去一小时内创建的所有文档,并按分钟对所有文档进行分组,并且由于每个文档都有一个tweet值,例如5、6或19,所以将它们加起来每分钟都提供一个总和。这是该集合的示例:{"createdAt":{"$date":1385064947832},"updatedAt":null,"tweets":47,"id":"06E72EBD-D6F4-42B6-B79B-DB700CCD4E3F","_id":"06E72EBD-D6F4-42B6-B79B-DB700CCD4E3F"}