作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个查询来查找一个文档并更新我的集合中的一个文档。问题是,当我这样做时,文档被清空而不是更新。这是我的代码:
auto collection = db["cities"];
bsoncxx::builder::stream::document query{};
query << "Address" << std::getenv("TESTADDRESS");
bsoncxx::builder::stream::document update{};
update << "verified" << true;
auto serverQuery = collection.find_one_and_update(query.view(), update.view());
if( serverQuery ) {
//Do something
}
我要做什么更新文档才能让它更新字段。当我使用查询的 View 代替更新 View 时,我得到了相同的文档,但它没有被清空。仅当使用更新文档时,我得到一个空白文档(仅保留“_id”字段)。
最佳答案
要更新这样的字段,您需要使用运算符 $set
:
update << "$set" << bsoncxx::builder::stream::open_document <<
"verified" << true <<
bsoncxx::builder::stream::close_document;
要返回修改后的文档,请记住使用 findOneAndUpdate 的 returnNewDocument
选项.
MongoDb 站点中有关 update operators 的更多信息.
关于c++ - 如何在 mongocxx find_one_and_update 的文档中设置值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57544112/
我是一名优秀的程序员,十分优秀!