在MongoDB c++中过滤重复项
Filter duplicates in MongoDB C++
我希望通过标记基于日期的重复项来找到我的集合中的所有重复项。以下是我的尝试,但我不确定如何在更新中使用cmdResult。有线索吗?
//filter duplicates
bson::bo cmdResult;
bool ok = c.runCommand(dbcol, BSON("distinct" << "date"), cmdResult);
c.update(dbcol,Query("date"<<cmdResult<<NOT<<"_id"), BSON("$set"<<BSON("noise"<<"true")), false, true);
"distinct"命令将返回集合中所有唯一"date"值的列表。但是你需要的是一个不止一次出现的"日期"值的列表。
您可以使用aggregate命令获得此列表,通过按"日期"分组并对条目进行计数,然后匹配计数> 1:
aggregate([
{ $group: { "_id": "$name", count: {$sum:1} } },
{ $match: { $gt: [ count, 1 ] } }
])
你将更新你的集合(multi:true)通过查询"date"在该列表中,设置"noise"字段:
update( {"name": {$in: [<list>]} },{$set: {"noise": true} }, true, false )
有关聚合的帮助,请参见http://docs.mongodb.org/manual/reference/aggregation/
相关文章:
- Mongodb c++驱动程序:如何查询元素的数组
- Mongocxx无法使用SSL连接到mongoDB
- 为什么 gcc 会给我可能未初始化的警告 deque::insert 带有过滤范围
- 获取 OID(类型::b_oid)作为 MongoDB C++驱动程序中的字符串
- 通过C++从目录中过滤特定文件类型
- boost::hana:为什么我无法过滤集?
- Mellanox上的DPDK IPv4流过滤
- 使用 QT C++过滤大数据的最佳方式
- MongoDB 使用数组中的 OR 条件构建查询
- 如何过滤avl树的数据
- 在张量中过滤多维视图
- 如何使用 pcap.h c++ 按 ip 过滤
- 使用 C++ 查询 MongoDB 的日期字符串
- MongoDB C++ 驱动程序 - 8 位和 16 位整数?
- 无法使用C++代码向MongoDB进行身份验证
- 在编译时使用 gnu++11 过滤值列表,不使用 stdlib(Arduino 环境)
- 将 MongoDB C++ 驱动程序升级到 mongocxx-3.1.2
- 如何让集合 in C++过滤掉指向相同值的不同指针
- Mongodb C驱动程序在Windows上安装失败
- 在MongoDB c++中过滤重复项