如何在c++mongodb驱动程序中使用$set、$inc等
how to use $set, $inc etc. in c++ mongodb driver
我想知道如何在c+mongodb驱动程序中使用$set$inc。我只能调用update
将整个json字符串更新到数据库中,如下所示:_db_conn.update(db_name_str, mongo::Query(key_word), mongo::fromjson(json_str), true);
是否有任何方法可以使用$set,$inc选项进行部分更新
当我在网上查看时,我在java中找到了类似的解决方案,但在c++版本的文档中找不到。。。WriteResult result = mongoNsTemplate.getCollection("userStore").update(query.getQueryObject(), new BasicDBObject("$set", dbObject), true, false);
任何帮助都将不胜感激。
您可以使用$set、$inc或其他操作。文档(上面的json_str
)必须是带有更新运算符修饰符(如$set或$inc)的文档,而不是完整的文档。因此,如果json_str
包含类似以下内容:
string json_str = "{'$set': {'field1': 1}, '$inc': {'field2': 1}}";
调用_db_conn.update(db_name_str, mongo::Query(key_word), mongo::fromjson(json_str), true);
将:
- 更新第一个匹配的文档(如果找不到,则插入一个新文档(upstart为true)
- 将field1设置为1(如果找不到它,则会添加它)
- 将字段2增加1(如果未找到,则设置为1;如果找到但不是数值,则导致错误)
这相当于使用mongo shell。
相关文章:
- 为什么我无法更改"set<set>"循环中的值<int>
- 对于set上的循环-获取next元素迭代器
- 在声明中合并两个常量"std::set"(不是在运行时)
- 有没有办法对std::unordered_set、std::unrdered_map、std::set、std::map
- 将 std::set 与基于键的比较器一起使用
- 如何使用set实现无序数据结构?
- 使用运算符调用 void 函数时出错<set>
- 修改"std::set"中用户定义类型的值
- 生成提升::hana::set 的常量表达式问题
- 如何在构造函数参数中初始化"std::set"?
- 如何使用 lower_bound/upper_bound 从 std::set 获取索引号?
- 如何在 C++ 中转发声明 std::set?
- 重构使用动态强制转换的 std::set 的比较运算符
- set::find 查找不存在的元素
- 为什么 std::set.erase(first, last) 会影响从中获取 (first, last) 的容器?
- 将 std:set<int32_t> 复制到 std::set <uint32_t>的好方法
- 错误 C2676:std::set::const_iterator 没有运算符 + 函数?
- std::set 是否将对象连续存储在内存中?
- 是否有一个 std::set 函数来确定不超过数字 x 的最大元素?
- 如何在c++mongodb驱动程序中使用$set、$inc等