问题标签 [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 回答
542 浏览

c++ - 如何通过 mongocxx C++ 驱动在 MongoDB 中上传文件?

我想使用 mongo-cxx-driver 上传文件但找不到方法。尝试使用 mongodb 的 gridfs 功能,但无法集成。使用当前稳定版本 mongodb-cxx-driver (3.1.1)。

尝试像这样存储文件时,gridFs 会引发错误:

错误: store_file: /usr/include/boost/smart_ptr/scoped_ptr.hpp:99: T* boost::scoped_ptr::operator->() const [with T = mongo::AtomicWord]: Assertion `px != 0'失败的。中止(核心转储)

此外,如果初始化 mongo 客户端,它会提供分段错误错误。

0 投票
1 回答
540 浏览

c++ - Windows LNK2001 中的 Mongocxx:无法解析的外部符号 __imp_mongoc_read_prefs_new

我已按照以下文档中的说明进行操作(包括构建 mongo-c-driver 的说明):https ://mongodb.github.io/mongo-cxx-driver/mongocxx-v3/installation/

我正在尝试构建提供的示例代码(使用 VS2015),为方便起见,我将复制粘贴:

我已经根据提供的项目设置指定了头文件和库包含目录。我还添加了 MONGOCXX_STATIC 和 BSONCXX_STATIC 预处理器定义。

最初,我将以下库添加到链接器设置中:libmongocxx.lib;libbsoncxx.lib;mongoc-static-1.0.lib;bson-1.0.lib;

当编译失败时,我尝试使用静态 bson 库(不知道为什么文档建议使用非静态库?),所以我的输入库现在如下:libmongocxx.lib;libbsoncxx.lib;mongoc-static-1.0.lib;bson-static-1.0.lib;

尽管我尽了最大的努力,并疯狂地谷歌搜索,我还是得到了大约 2000 个未解决的外部,我在下面复制并粘贴了一个示例:

看起来好像它来自 mongo c 驱动程序。我已经看过这篇 SO 文章,但我已经链接了如上所述的 mongoc-static-1.0.lib - 不幸的是,在这篇文章中几乎没有其他内容。编译器清楚地找到了所说的库(否则它会抱怨“未找到”错误),所以我只能认为我以某种方式错误地构建了库。

在这一点上我还要提到,我已经使用非静态库和 dll 成功构建并运行了代码 - 但是,非常希望避免使用 dll,因此我想尽可能使用静态库.

我现在已经多次阅读安装说明,我印象深刻的是以下内容:

如果您需要静态库,请务必在构建 libmongoc 时使用 --enable-static 配置选项。

但是,这似乎只适合在 Linux 中安装,我正在使用 CMake 在 Windows 中安装。我运行 CMake.exe -LH 以查看有哪些可用选项,希望能找到有关静态库的信息,但没有骰子。似乎没有必要的选项来构建静态库,因为当我安装 mongo-c-driver 时,我成功获得了 bson-static-1.0.lib 和 mongoc-static-1.0 库。

我发现自己不知所措!任何帮助将不胜感激,干杯。

0 投票
1 回答
966 浏览

c++ - mongodb:跨日期范围查询

使用 mongocxx 驱动程序,我需要在 mongodb 中查询某个日期范围内的文档(股票数据)。

考虑以下文档格式:

假设我每个库存有一个集合,每个集合有数百个这样的文档,每个文档都有不同的日期。

如果用户提供两个日期格式为字符串 (yyyy-mm-dd):

如何查询 mongo 以获取日期在“start_date”和“end_date”之间(包括)的所有文件?

注意:我使用的是mongodb 3.2.12,mongocxx驱动版本3.0.2

谢谢,

0 投票
1 回答
400 浏览

c++ - 为什么从 C++ 连接到 MongoDB 时会出现访问冲突?

当我尝试运行这段小代码时

我总是收到这个警告

有人可以帮忙吗?

0 投票
1 回答
903 浏览

c++ - 如何使用 C++ 获取 MongoDB 的当前实例?

我在构造函数中生成类 mongocxx::instance 的对象。

构造函数:

现在我需要在一个函数中获取这个实例。我试过这个:

功能:

我的程序在线崩溃mongocxx::instance::current();

有人能帮我吗?

0 投票
1 回答
513 浏览

c++ - 如何在 C++ 中使用 MongoDB 的 insert_many() 方法?

我正在使用一种方法将一些数据存储在 MongoDB 数据库中。

我知道该列表已存储超过 1 个class_a. 我使用对象的方法name()来测试它是否可访问。它按预期返回了它的名称。所以有一个客户集,我想。但是该方法会引发错误:mongocxx::collectioncollectioninsert_many()

“mongoc_bulk_operation_execute() 需要一个客户端,但尚未设置一个客户端。:通用服务器错误”

我究竟做错了什么?

0 投票
1 回答
710 浏览

c++ - Mongodb C ++驱动程序文档构建器中的模糊<<运算符

我正在尝试使用 v3 驱动程序构建一个 mongodb 文档。我正在使用“char *”指针数组中的字符串,但我不断收到错误消息,提示 << 运算符不明确。确切的错误是:

item.cpp:105:错误:'operator<<' 的重载不明确(操作数类型为

dbTypeString 是一个字符串数组,例如:

mongo 代码的简化版本看起来像

奇怪的是: doc << "string1" << "string2" 工作正常。

有什么建议么?

0 投票
0 回答
197 浏览

c++ - 在 MongoDB C++ 驱动程序中转义正则表达式的一部分

我正在使用 MongoDB 3.4 和 C++ 驱动程序(最新版本,3.1.1)。我需要通过$regex以给定prefix. 目前,我使用以下查询文档:

但是,当prefix包含特殊字符(如$. 有没有一种方法可以转义prefix或重写上面的文档创建,以便无论在中使用的字符如何,它都可以工作prefix

0 投票
1 回答
1259 浏览

c++ - 如何使用 mongocxx c++ 驱动递归生成 Mongodb 文档?

如何使用 mongocxx c++ 驱动递归生成 Mongodb 文档?1.我使用mongocxx c++驱动v.3和c++11。2. 这是我的 main.cpp 方法,它解析十六进制字符串并生成这样的 mongocxx 代码: console:$ ./main dissect 0x160301012c01000128030340c70e243001b96d8c 和输出:

  1. 在此之后,我需要将它推送到 mongodb 中。

  2. 在这里我被堆叠了,尝试编译它时出错。

    src/MongodbMapper.cpp:76:6: note: candidate function not viable: no known conversion from 'bsoncxx::v_noabi::builder::stream::key_context<bsoncxx::v_noabi::builder::stream::key_context<bsoncxx::v_noabi::builder::stream::closed_context> >' to 'bsoncxx::builder::stream::document &' for 3rd argument void generateDocument(DataUnit& node, int level, bsoncxx::builder::stream::document& doc) {

0 投票
1 回答
586 浏览

mongodb - mongoc driver: how to query based on ISOdate?

I have a simple query that worked on mongodb shell:

very simple, just trying to find any record that has date before 2015-11-03. Now i want to translate to similar code in mongoc driver, i have following code that doesn't work:

anyone knows the correct way to write in mongoc? I have looked through mongoc.org, no related example there.