- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在尝试反向显示集合中的文档。在 shell 中,这可以通过使用以下命令来完成:
db.testcollection.find().sort({$natural:-1})
在文档中我找到了这个函数:
无效排序(bsoncxx::document::view_or_value 排序);
/// The order in which to return matching documents. If $orderby also exists in the modifiers
/// document, the sort field takes precedence over $orderby.
///
/// @param ordering
/// Document describing the order of the documents to be returned.
///
/// @see http://docs.mongodb.org/manual/reference/method/cursor.sort/
如何像 shell 示例中那样将 natural 设置为 -1?谢谢!
最佳答案
您需要使用 bsoncxx
生成器创建排序顺序文档。下面是一个插入 10 个文档并以相反顺序将它们转储出来的示例:
#include <iostream>
#include <bsoncxx/builder/stream/document.hpp>
#include <bsoncxx/document/value.hpp>
#include <bsoncxx/document/view.hpp>
#include <bsoncxx/json.hpp>
#include <mongocxx/client.hpp>
#include <mongocxx/collection.hpp>
#include <mongocxx/instance.hpp>
#include <mongocxx/options/find.hpp>
#include <mongocxx/uri.hpp>
using namespace bsoncxx;
int main() {
auto inst = mongocxx::instance{};
auto client = mongocxx::client{mongocxx::uri{}};
auto coll = client["test"]["sorttest"];
coll.drop();
for (auto i = 0; i < 10; i++) {
coll.insert_one(builder::stream::document{} << "seq" << i << builder::stream::finalize);
}
auto order = builder::stream::document{} << "$natural" << -1 << builder::stream::finalize;
auto opts = mongocxx::options::find{};
opts.sort(order.view());
auto cursor = coll.find({}, opts);
for (auto&& doc : cursor) {
std::cout << to_json(doc) << std::endl;
}
}
关于c++ - Mongocxx : How to display the documents inversely,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40423815/
我想知道如何使用 mongocxx 3.1.3(Mongo C++ 驱动程序)执行这些命令: sh.enableSharding("YourDB") sh.shardCollection("YourD
我正在寻找 the mongocxx query exemples我不明白在这里使用 auto&& 而不是 auto& 有什么意义。 auto cursor = db["restaurants"].f
我在使用 mongodb c++ 驱动程序时遇到了一些问题。 我有以下代码并且运行良好: //bsoncxx::document::value doc-->It was defined properl
我试图在解析数据文件后将日期和时间插入到 mongocxx 中,我的实际日期时间是: 2007/12/01 00:00:00 即 2007 年 12 月 1 日午夜。我有这段代码: static bs
我正在通过 C++ API 将图像插入到 mongodb,如下所示: bsoncxx::document::value document = bsoncxx::builder::basic::m
在 mongocxx API 中,Collection.aggregate()需要一个管道对象才能运行 aggregate pipeline询问。这意味着使用 Pipeline 类构造查询。如:
司机和我有一些关于使用司机的问题。问题是我应该包含哪些头文件才能在我的项目中使用这个驱动程序?我见过这种包含文件 #include #include #include #include 和这种
我想知道 mongocxx 驱动程序 (c++) 中以下代码的等价物是什么? db.RadarPointsExl.find( { age: { $gt: 25, $lte: 50 }, {nam
我有一个查询来查找一个文档并更新我的集合中的一个文档。问题是,当我这样做时,文档被清空而不是更新。这是我的代码: auto collection = db["cities"]; bsoncxx::bu
我正在尝试在我的 C++ 示例代码中将 mongdb 与 mongocxx 驱动程序连接起来。我添加了附加包含、库和依赖项。当我构建它时,它显示以下错误。 这是完整的代码 #include "stda
我尝试使用 C++ Driver 3.1.2,代码仍然在客户端解构器中崩溃 MongoMgr.h #ifndef _MOMGODB_MANAGER_H_ #define _MOMGODB_MANAGE
Valgrind 使用 mongocxx::instance inst{} 给我一个still reachable 记录; ==3014== 16,384 bytes in 1 blocks are
以下是尝试使用带有项目查找选项的 mongo 查询的代码。 using bsoncxx::builder::stream::document; mongocxx::options::f
我目前正在尝试将一个 JSON 文件插入到我的 mongoDB 中。我已经看到这是通过过去使用 mongo::BSONObj 解决的......但这似乎不是一个选项,因为他们发布了用于 c++11 的
auto cursor = db["friend"].find({}); for (auto &&docView : cursor) { bsoncxx::builder::b
我正在尝试反向显示集合中的文档。在 shell 中,这可以通过使用以下命令来完成: db.testcollection.find().sort({$natural:-1}) 在文档中我找到了这个函数:
我正在使用以下代码查询一个集合: bsoncxx::stdx::optional query_result = collection.find_one(bsoncxx::builder::stream
我需要使用 GridFS 规范随机访问存储在 MongoDB 中的文件。看来 C++ 驱动程序 (mongocxx) 没有提供执行此操作的接口(interface)。我可以从 mongocxx::gr
我想使用 PIMPL 成语编写一个到 mongocxx 的接口(interface)。接口(interface)本身可以工作,但我对 mongocxx 内联命名空间做错了,因为编写测试不起作用。 这是
以下是我尝试使用 mongocxx 驱动程序查询 mongodb 的一段代码。 /*查找所有匹配过滤器的代码*/ mongocxx::cursor cursor = collection.find(
我是一名优秀的程序员,十分优秀!