问题标签 [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.
c - MongoDB 在 C 中使用 $or 检索记录
我正在尝试模拟以下 MongoDB shellcode:
这是我尝试过的:
但它似乎没有按预期工作。我还尝试用数组替换对象,然后将数组嵌套在对象中,但无济于事。
c - 查询mongodb C
我正在尝试进行查询,该查询必须从我的 mongodb 数据库中检索一些数据,请按照我的代码:
我不知道如何使用方法“mongo_find”(第 100 行),它返回一个指向 mongo_cursor 的指针,但我无法操纵这个指针,有一些想法可以帮助我实现这一目标吗?
c - 复杂查询mongodb c
我已经像这样创建了我的 mongodb 查询 >
我用这个运行它>
如果我打印“mongo_cursor_next(cursor)”方法,我得到一个“-1”(错误),我想知道,我的查询中的错误是什么。
先感谢您。
c - MongoDB、ZeroMQ 和 C
我有一个很大的问题,
我有一些使用 ZeroMQ 和 C 的代码,以及另一个使用 MongoDB 和 C 的代码,现在我必须合并这些代码,但是当我尝试使用此命令进行编译时:
我得到了这个错误堆栈:
当我安装 Mongo-C-Driver 时:
我使用 make STD=c89 来解决 MongoDB-C-api 和 ZeroMQ-C-api 之间的冲突,在我的 logger.c 文件中我定义了错误堆栈要求的变量,但它不起作用.
mongodb - Mongo C驱动,尽快更新文档
很简单,我需要将时间序列数据存储在文档中。我认为有一份负责 30 分钟数据的文件是合理的。该文档可能如下所示:
但这只是每秒将更新的大约几十万个文档中的一个。
这意味着每 30 分钟,我使用_id
和field1
创建文档field2
。然后,每一秒我都想添加一个时间戳/值组合。
我正在使用 mongo c 库,我假设它会超快,但我这样做的方式需要一个mongo_update
不能批量完成的。我认为没有办法使用mongo_insert_batch
.
不幸的是,它的速度非常慢 - 性能很糟糕。我这样做完全不正确吗?糟糕,我的意思是通过做一些粗略的工作,我得到 600/秒,在备用数据库(不命名名称)中,我得到 27,000/秒。
代码大约是:
关闭或打开注销关注没有任何区别。
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个结果。
我做错了什么?
c++ - MongoDB C++ 驱动程序服务器端查询计数
Windows 7 64 SP1 -- MongoDB 2.2.0-rc2 -- Boost 1.42 -- MS VS 2010 Ultimate -- C++ 驱动程序
我有一个将 Query 对象作为参数的函数:
优点:
- 可以接受 Query 对象或格式良好的 BSONObj。
- 可以访问查询助手,例如排序/提示/等。
坏处:
无法进行类似于 shell 的服务器端计数(相对于客户端的一批结果计数):
IE,
引发错误:
/li>
因此,建议我使用 BSONObj 作为参数:
优点:
- 可以做一个服务器端计数。
- 可以转换为 Query 并因此使用它的助手。
坏处:
- 使用该函数的任何人都必须注意不要将查询作为违反直觉的 Query 对象传递。
所以,我的问题是:
为什么 BSONObj 中没有实现 Query 类的辅助方法?或者反过来说,为什么不能用 Query 类来实现服务器端的计数方法呢?
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 上的集合索引?或者还有什么可以解释这种明显的异常(或我缺乏理解?
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 &'
如果我按值传递,那么它编译得很好。
有没有办法避免任何一个错误(除了按值传递)?谢谢!
c - 主节点崩溃时如何重新连接到副本集?
在这个简单的程序中,我想在主节点崩溃时重新连接到副本集。但它不起作用:如果主节点崩溃,这个程序将立即终止,没有任何输出,并返回141。我不知道为什么。重新连接到副本集的正确方法是什么?