博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++中使用Mongo执行count和distinct运算
阅读量:4057 次
发布时间:2019-05-25

本文共 983 字,大约阅读时间需要 3 分钟。

 

假设:服务端有Mongo数据库MyDB,其中有表MyTable,表中有字段"IP"和"Date"等,分别记录了访问本服务的客户端IP和访问时间,MyTable表访问权限的账号User,密码123456

(1)创建连接

mongo::DBClientConnection pConn = new mongo::DBClientConnection;string strErr;pConn->connect("127.0.0.1", strErr)pConn->auth("MyDB", "User", "123456", strErr);

 

(2)count运算

//统计该日期在区间DateStart和DateEnd内的记录数量
//"$gte"为Mongo的比较操作符>=,"$lte"为<=,"$gt"为>,"$lt"为<

int64 DateStart = 1315014772, DateEnd = 1317606772;unsigned int64 u64Count = pConn->count("MyTable", BSON("Date" << BSON("$gte" << DateStart << "$lte" << DateEnd)));

 

(3)distinct运算

//统计表中所有不同IP的数量

bo bobj; pConn->runCommand("MyDB",    BSON("distinct" << "MyTabel" << "key" <<"IP", bobj)); vector
vecbe = obj.getField("values").Array(); size_t szIPCount = vecbe.size(); //查看具体IP vector
vecIP;for(size_t i=0; i

//根据条件统计,在某时间段内访问服务的不同客户端IP的数量

pConn->runCommand("MyDB",BSON("distinct" << "MyTabel" << "key" << "IP" << "query" << BSON("Date" << BSON("$gte" << DateStart << "$lte" << DateEnd))), obj);

 

转载地址:http://hgrci.baihongyu.com/

你可能感兴趣的文章
大数据入门:Spark RDD基础概念
查看>>
大数据入门:SparkCore开发调优原则
查看>>
大数据入门:Java和Scala编程对比
查看>>
大数据入门:Scala函数式编程
查看>>
C++报错:引发了未经处理的异常:写入访问权限冲突, p 是 0xCCCCCCCC
查看>>
【数据结构周周练】002顺序表与链表
查看>>
C++报错:C4700:使用了非初始化的局部变量
查看>>
【数据结构周周练】003顺序栈与链栈
查看>>
【数据结构周周练】006队列基本操作-顺序结构及链式结构实现
查看>>
C++类、结构体、函数、变量等命名规则详解
查看>>
C++ goto语句详解
查看>>
【数据结构周周练】008 二叉树的链式创建及测试
查看>>
《算法分析与设计》 第七章 贪心法 基本知识点整理
查看>>
贪心法求解背包问题 C++
查看>>
贪心法求解TSP问题 C++
查看>>
《软件体系结构》 第四章 软件体系结构描述
查看>>
《软件体系结构》第六章 Web服务体系结构
查看>>
《软件体系结构》 第七章 基于体系结构的软件开发
查看>>
《软件体系结构》 第九章 软件体系结构评估
查看>>
《软件体系结构》 第十章 软件产品线体系结构
查看>>