繁体   English   中英

如何在mongocxx中的文档中设置值find_one_and_update

[英]How to set a value in a document in mongocxx find_one_and_update

我有一个查询来查找一个并更新我的收藏中的文档。 问题是,当我这样做时,文档被设为空而不是更新。 这是我的代码:

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
}

我必须与更新文档做什么才能使其更新字段。 当我使用查询的视图代替更新视图时,我得到的是相同的文档,而没有清空它。 只有在使用更新文档时,我才能获得空白文档(仅保留“ _id”字段)。

要更新这样的字段,您需要使用运算符$set

update << "$set" << bsoncxx::builder::stream::open_document <<
                    "verified" << true <<
                    bsoncxx::builder::stream::close_document;

并返回修改的文档记得使用returnNewDocument的选项findOneAndUpdate

MongoDb站点中有关更新运算符的更多信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM