问题标签 [mongodb-c]

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 投票
2 回答
646 浏览

c - MongoDB 在 C 中使用 $or 检索记录

我正在尝试模拟以下 MongoDB shellcode:

这是我尝试过的:

但它似乎没有按预期工作。我还尝试用数组替换对象,然后将数组嵌套在对象中,但无济于事。

0 投票
2 回答
2131 浏览

c - 查询mongodb C

我正在尝试进行查询,该查询必须从我的 mongodb 数据库中检索一些数据,请按照我的代码:

我不知道如何使用方法“mongo_find”(第 100 行),它返回一个指向 mongo_cursor 的指针,但我无法操纵这个指针,有一些想法可以帮助我实现这一目标吗?

0 投票
1 回答
302 浏览

c - 复杂查询mongodb c

我已经像这样创建了我的 mongodb 查询 >

我用这个运行它>

如果我打印“mongo_cursor_next(cursor)”方法,我得到一个“-1”(错误),我想知道,我的查询中的错误是什么。

先感谢您。

0 投票
3 回答
1275 浏览

c - MongoDB、ZeroMQ 和 C

我有一个很大的问题,

我有一些使用 ZeroMQ 和 C 的代码,以及另一个使用 MongoDB 和 C 的代码,现在我必须合并这些代码,但是当我尝试使用此命令进行编译时:

我得到了这个错误堆栈:

当我安装 Mongo-C-Driver 时:

我使用 make STD=c89 来解决 MongoDB-C-api 和 ZeroMQ-C-api 之间的冲突,在我的 logger.c 文件中我定义了错误堆栈要求的变量,但它不起作用.

0 投票
2 回答
949 浏览

mongodb - Mongo C驱动,尽快更新文档

很简单,我需要将时间序列数据存储在文档中。我认为有一份负责 30 分钟数据的文件是合理的。该文档可能如下所示:

但这只是每秒将更新的大约几十万个文档中的一个。

这意味着每 30 分钟,我使用_idfield1创建文档field2。然后,每一秒我都想添加一个时间戳/值组合。

我正在使用 mongo c 库,我假设它会超快,但我这样做的方式需要一个mongo_update不能批量完成的。我认为没有办法使用mongo_insert_batch.

不幸的是,它的速度非常慢 - 性能很糟糕。我这样做完全不正确吗?糟糕,我的意思是通过做一些粗略的工作,我得到 600/秒,在备用数据库(不命名名称)中,我得到 27,000/秒。

代码大约是:

关闭或打开注销关注没有任何区别。

0 投票
1 回答
925 浏览

mongodb - 查询中的 mongodb c-driver $orderby

我正在尝试使用 sort ($orderby) 关键字对 mongo 集合进行查询。

这是没有 $orderby 的 bson-query 对象:

它工作得很好,并返回 5000 个结果。

当我添加 $orderby 对象时(就像这里的 c-driver 示例http://api.mongodb.org/c/current/tutorial.html#complex-queries):

我有0个结果。

我做错了什么?

0 投票
1 回答
1142 浏览

c++ - MongoDB C++ 驱动程序服务器端查询计数

Windows 7 64 SP1 -- MongoDB 2.2.0-rc2 -- Boost 1.42 -- MS VS 2010 Ultimate -- C++ 驱动程序

我有一个将 Query 对象作为参数的函数:

优点:

  1. 可以接受 Query 对象或格式良好的 BSONObj。
  2. 可以访问查询助手,例如排序/提示/等。

坏处:

  1. 无法进行类似于 shell 的服务器端计数(相对于客户端的一批结果计数):

    IE,

    引发错误:

    /li>

因此,建议我使用 BSONObj 作为参数:

优点:

  1. 可以做一个服务器端计数。
  2. 可以转换为 Query 并因此使用它的助手。

坏处:

  1. 使用该函数的任何人都必须注意不要将查询作为违反直觉的 Query 对象传递。

所以,我的问题是:

为什么 BSONObj 中没有实现 Query 类的辅助方法?或者反过来说,为什么不能用 Query 类来实现服务器端的计数方法呢?

0 投票
2 回答
931 浏览

mongodb - 使用 MongoDb C++ 驱动程序查询大型集合不同于 shell

Windows 7 64 SP1 -- MongoDB 2.2.0-rc2 -- Boost 1.42 -- MS VS 2010 Ultimate -- C++ 驱动程序

在“Mongo in Action”之后,在 shell 中:

db.numbers.find() 显示:

因此,在 C++ 中复制:

输出:

在 shell 中调用 db.numbers.find() 具有相同的输出。为什么它不以 {"num" : 0} 开头?它存在:

{"num" : 0} 的 _id 在 {"num" : 199924} 的 _id 之前

并且存在“_id”索引:

如果我通过将查询代码更改为读取来添加按_id排序:

然后它按顺序打印:

较小的文档集合(例如 200 个)不会发生这种情况。

问题:为什么 C++ 查询似乎没有使用 _id 上的集合索引?或者还有什么可以解释这种明显的异常(或我缺乏理解?

0 投票
2 回答
982 浏览

c++ - MongoDB C++ 驱动程序——通过引用传递查询对象在随后使用其排序时引发错误

Windows 7 64 SP1 -- MongoDB 2.2.0-rc2 -- Boost 1.42 -- MS VS 2010 Ultimate -- C++ 驱动程序

我写了这个函数:

void printQuery(DBClientConnection &c, std::string &dc, const Query &qu = BSONObj(), std::string sortby = "" )

这个片段:

引发错误:

error C2663: 'mongo::Query::sort' : 2 overloads have no legal conversion for 'this' pointer.

sort (const string &field, int asc=1)应该是适用的过载。我相信这与使用const Query&它的成员函数有关sort。但是,如果我将其更改为Query&没有const,那么我的参数初始化= BSONObj()会引发:

cannot convert from 'mongo::BSONObj' to 'mongo::Query &'

如果我按值传递,那么它编译得很好。

有没有办法避免任何一个错误(除了按值传递)?谢谢!

0 投票
1 回答
209 浏览

c - 主节点崩溃时如何重新连接到副本集?

在这个简单的程序中,我想在主节点崩溃时重新连接到副本集。但它不起作用:如果主节点崩溃,这个程序将立即终止,没有任何输出,并返回141。我不知道为什么。重新连接到副本集的正确方法是什么?