如何在 mongocxx 的文档中设置值 find_one_and_update
How to set a value in a document in mongocxx find_one_and_update
我有一个查询要查找并更新我 collection 中的文档。问题是,当我这样做时,文档被清空而不是更新。这是我的代码:
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;
而对return修改的文件记得使用findOneAndUpdate的returnNewDocument
选项。
MongoDb 站点中关于 update operators 的更多信息。
我有一个查询要查找并更新我 collection 中的文档。问题是,当我这样做时,文档被清空而不是更新。这是我的代码:
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;
而对return修改的文件记得使用findOneAndUpdate的returnNewDocument
选项。
MongoDb 站点中关于 update operators 的更多信息。