如何在c++mongodb驱动程序中使用$set、$inc等

how to use $set, $inc etc. in c++ mongodb driver

本文关键字:set inc c++mongodb 驱动程序      更新时间:2023-10-16

我想知道如何在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。