我想知道如何在c + mongodb驱动程序中使用$ set $ inc。我只能调用update
将整个json字符串更新到db中,如下所示:_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);
任何帮助将不胜感激。
答案 0 :(得分:0)
您可以使用$ 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);
将:
这相当于使用mongo shell。