Mongodb c++驱动程序:如何查询元素的数组
Mongodb c++ driver: how to query for an Array for an Element
与js文档相比,使用c++mongodb驱动程序的文档非常缺乏。
然而,c++驱动程序的语法通常与js语法有一对一的映射。因此,如果没有关于使用c++驱动程序的文档,模仿js代码通常是有效的。
但是对于以下任务(在js文档中找到(,我找不到合适的c++解决方案:
查询数组中的元素
若要查询数组字段是否包含至少有一个元素具有指定值,请使用筛选器{:}其中是元素值。以下示例查询标记为数组的所有文档包含字符串"红色"作为其元素之一:
db.inventory.find( { tags: "red" } )
我当前的代码:
mongocxx::cursor cursor =
inventoryCollection.find(bsoncxx::builder::stream::document{}
<< "tags" << "red"
<< bsoncxx::builder::stream::close_document
<< bsoncxx::builder::stream::finalize);
这将导致异常。显然,对于数组字段,不允许将字符串作为搜索查询:"tags"<lt;"红色">
我应该如何在c++中实现这一点?
我认为您正在双重关闭流。取消对stream::close_document
的调用,让stream::finalize
为您执行即可。
相关文章:
- Mongodb c++驱动程序:如何查询元素的数组
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- 使用strcpy将char数组的元素复制到另一个数组
- 使用不带参数的函数访问结构元素
- 给定n个元素的m个集合.在C++中找到出现在最大集合数中的元素
- 查询SQLite数据库中的日期
- C++如何通过用户输入删除列表元素
- lower_bound()返回最后一个元素
- 基于多个条件处理地图中的所有元素
- 调整大小后指向元素值的指针unordered_map有效?
- 使用std::transform将一个范围的元素添加到另一个范围中
- 使用函数"remove"删除重复元素
- 具有最大子序列大小的序列,每个元素都相同
- 如何将两个不同矢量的同一位置的两个元素组合在一起
- 如何将元素添加到数组的线程安全函数?
- 对于多个查询,查找在 l 到 r 范围内具有相同元素的最长公共子数组
- MongoDB C 查询文档的子元素
- 从equal_range查询中筛选和修改 boost::multi_index 中的元素
- Boost R树:计算满足查询的元素
- 基于数组中移动元素的查询