【发布时间】:2019-10-04 09:12:38
【问题描述】:
我的问题涉及到mongodb和pymongo;我有一个包含多个集合的数据库。每个集合中都有数千个文档,但大多数只包含大约 10-200 个“独特”文档。我想 COUNTIF 每个“唯一”文档在特定集合中出现多少次。我见过具有特定字段值但不计算整个文档的 COUNTIFS 示例。
我已经阅读了很多关于聚合的文章,但我仍然不知道我是否走在正确的轨道上;希望得到一些指导。
假设集合中有 20 个文档,但只有 3 个是唯一的。我想输出与此类似的 COUNTIF 值。
{ "_id" : ObjectId("5cde2f68416437c1ae98de18"), "Source Network Address LP" : [ "192.168.5.5" ], "Account Name" : [ " -", " ANONYMOUS LOGON" ], "Process Name LP" : [ "-" ] } - 10
{ "_id" : ObjectId("5cde2f68416437c1ae98de19"), "Source Network Address LP" : [ "192.168.5.8" ], "Account Name" : [ " -", " ANONYMOUS LOGON" ], "Process Name LP" : [ "-" ] } - 6
{ "_id" : ObjectId("5cde2f68416437c1ae98de19"), "Source Network Address LP" : [ "192.168.5.2" ], "Account Name" : [ " -", " ANONYMOUS LOGON" ], "Process Name LP" : [ "-" ] } - 4
最终我会将此输出写入以下格式的 CSV 文件:
Source Network Address,Account Name,Process Name LP,count
'192.168.5.5','-|ANONYMOUS LOGON','-',10
'192.168.5.8','-|ANONYMOUS LOGON','-',6
'192.168.5.2','-|ANONYMOUS LOGON','-',4
【问题讨论】:
标签: mongodb mapreduce pymongo aggregation