从字符串创建 bsoncxx::builder::basic::document?

Create bsoncxx::builder::basic::document from a string?

有没有办法从 std::string 创建 bsoncxx::builder::basic::document?

我知道如何使用 make_document、kvp、make_array 等 mongocxx 函数以及流函数构建文档。

但我想知道的是,我们是否可以创建文档的 std::string 表示并将其变成 bsoncxx::builder::basic::document?

假设这个std::string包含JSON,那么是的。您可以调用 bsoncxx::from_json.

如果 std::string 缓冲区以某种方式包含 BSON 数据而不是 JSON,您可以将字符串中的数据复制到新缓冲区并使用前两个缓冲区之一 bsoncxx::document::value::value 构造函数,它拥有缓冲区的所有权。

您还可以通过将字符串的基础 .data().length() 传递给两个参数 bsoncxx::view::view 构造函数,然后将该视图传递给适当的 bsoncxx::value 构造函数,它将复制视图中的数据。