问题标签 [mongo-cxx-driver]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2055 浏览

c++ - 如何将 BSON 对象的 OID 获取为十六进制字符串?

我正在使用mongo-cxx驱动程序尝试将对象的对象 ID 转换为BSON字符串

我确信BSONObj有有效的数据,但我收到以下错误:

BSONElement:错误类型#somenumber

0 投票
1 回答
4158 浏览

c++ - 如何使用 C++ 驱动程序将 mongodb 数组保存到向量中?

例如,如果我在 shell 中执行此操作

然后我想进入arr我的 C++ 程序。

在我得到 BSONObj 之后,我可以name得到

pBSON 对象在哪里。

但是从数组中获取元素并将它们保存到 std::vector 中的正确方法是什么?

编辑:

经过更多研究后,我找到了 BSONElement doxygen 文档并制作了这个。

但我仍然不确定这是否是正确的方法。

0 投票
2 回答
745 浏览

c++ - MongoDb使用C++驱动创建稀疏索引

有没有办法使用 MongoDb (2.2) C++ 驱动程序创建稀疏索引?

ensureIndex函数似乎不接受此参数。来自MongoDb 文档

0 投票
1 回答
969 浏览

c++ - 在 C++ 中正确修改 mongo::BSONObj

我编写了一个使用 mongodb 进行数据存储的软件。查询返回数据后,BSONObj 用于很多不同的地方。

目前,我需要为查询返回的 BSONObj 添加 C++ 端修改的可能性。由于后面的部分相当大,我只能修改查询部分,但是查看 BSONObj 和 BSONElement 引用我看不到编辑 BSONObj 而不在每次编辑时重建它的正确方法。

修改代码类似于以下内容:

我研究的选项之一是创建一个单一的BSONObjBuilder并对其进行修改,但它没有提供查询对象的选项,并且文档没有说明现有字段和append().

0 投票
1 回答
890 浏览

c++ - 在 C++ 中使用嵌套数组处理 MONGO 记录

我正在尝试使用 MONGO C++ API 来处理一堆如下所示的记录......“条目”数组中的行数是可变的:它是 13 或 7。

我根据 UTCTime 和 SvId 查询集合......当我取回记录时,我不确定如何逐步完成它们......

通常,我只是得到一个游标并使用“next()”遍历返回的记录集……但现在我有一个包含 7 或 13 个条目的“条目”字段。我如何访问这些项目中的每一个?我猜肯定有某种“子光标”可以用来循环遍历那些。

我正在查看 API 和示例,但嵌套数组的内容并不多。

谢谢,

瑞克

0 投票
1 回答
649 浏览

c++ - how to get `_id` after upserting document in mongo-c-driver or mongo-cxx-driver?

How to get _id after upserting document in mongo-c-driver Or mongo-cxx-driver?

The following code snippet is from mongo-shell, Which shows the _id field in last row of WriteResult.

0 投票
0 回答
136 浏览

c++ - compare_numbers.h:83:警告:将参数 2 的 'double' 传递给 'int mongo::compareLongs(long long int, long long int)'

我想在 RHEL 5 中编译 mongo c++ 驱动程序,但是使用时scons,错误是:

这是什么 ?

0 投票
1 回答
725 浏览

mongodb - 在 C++ 驱动程序中具有经过身份验证的连接的 mongodb 连接池

我读过 C++ 驱动程序的连接池不适用于经过身份验证的连接( 2013 年底的文章)。这(仍然)是真的吗?

0 投票
0 回答
828 浏览

c++ - 通过 cmake 链接 boost-thread 和 boost-regex 时的 SIGSEGV(分段错误)

我尝试编译并运行 mongo-cxx-driver 的示例。它需要链接 Boost-system、boost-thread 和 boost-regex。当我通过命令行编译时:

g++ simple_client_demo.cpp -I/home/ssi/mongo-client-install/include -L/home/ssi/mongo-client-install/lib -lmongoclient -lboost_system -lboost_thread -lboost_regex

一切都很好。但是当我尝试通过 Cmake 编译时,我得到 Signal: SIGSEGV (Segmentation fault)in /usr/include/c++/4.8/functional(2030 行_M_manager(_M_functor, _M_functor, __destroy_functor);,如果它确实重要的话)。

我的 CMakeList.txt 的一部分,它链接了 Boost:

ldd a.outg++(从命令编译):

ldd test_mongo_c_driver(从 cmake 编译):

这是我的 simple_client_demo.cpp:

输出make VERBOSE=1

0 投票
1 回答
236 浏览

mongo-c-driver - mongo c驱动程序的内存损坏

我有内存损坏,我不知道为什么。错误信息是:

我正在使用 1.1.10 版的 mongoc 库。这是我的代码片段:

我在迭代插入的 bucle 中有这个函数。奇怪的是第一次插入没问题,但是当它进行第二次插入时,就会发生内存损坏。

基本上(伪代码):

如果它有任何帮助,之前我连接了一个具有相同结果的 MySQL 数据库。我安装了 valgrind 来检查不是分配内存错误还是因为我没有释放内存。valgrind 没有报告内存错误。

我设法修复了在每次插入之前插入此行的错误:

在插入的最后:

我认为错误可能是相似的,但我没有找到任何函数来初始化和关闭 mongodb 库。

编译的命令行是: