如何使用c++在RethinkDb中列出表
How to list tables in RethinkDb using C++
当我在Python
或JavaScript
中做一些事情时,我总是有很多机会,既可以阅读特定库的文档,也可以尝试大量的小示例。
不幸的是,在C++
中,在文档中提供至少少量的工作示例并不那么受欢迎(出于什么原因?)两个很好的例子是MongoDb和RethinkDb的c++客户端。
我这里的问题是关于RethinkDB
的。在Python
中,我知道如何列出所有表名,不是因为有文档,我应该深入研究驱动程序代码,而是因为有一个小的方便的例子:
r.db('test').table_list().run(conn)
我做完了。在C++
我不知道如何做到这一点-如何列出所有表的名称。我甚至不知道是否有这样的方法。我希望有人能提供一些指导和分享他们的知识。
编辑
似乎,就像我找到了一个合适的方法table_list
,但不幸的是我不知道如何使用它。此外,似乎我试图以错误的方式连接到数据库-我的意思是我连接到服务器,但不连接到特定的数据库(我又不知道如何实现这一点)。所以,这就是我现在的内容:
std::unique_ptr<R::Connection> conn = R::connect("localhost",28105);
//^^^ I want to connect to a particular database "mydb" - how to do that?
R::Cursor cursor = R::table_list().run(*conn);
for(R::Datum& item : cursor){
do_something(R::write_datum(item).c_str());
// ^^^ is that right???
}
如果我这样做,如我所示,没有指定数据库名称,那么我什么也得不到。但是,如果我尝试这样连接:
R::connect("localhost",28105,"mydb");
然后在for
中我得到一个无限循环。所以,我需要一些帮助。谢谢!
编辑
哎呀,我找到解决办法了。我必须承认,这是相当直观的。我会贴在下面的
解决方案:
std::unique_ptr<R::Connection> conn = R::connect("localhost",28105);
R::Cursor cursor = R::db("mydb").table_list().run(*conn);
for(R::Datum& item : cursor){
do_something(R::write_datum(item).c_str());
}
效果很好。我要感谢AtnNn
——这个伟大的驱动程序的唯一开发者。
相关文章:
- 如何创建一个CMake变量,除非显式重写,否则使用默认值
- C++:TypeDef使用元组
- 使用std::multimap迭代器创建std::list
- 从不同线程使用int64的不同字节安全吗
- 比较并显示使用最小值(a,b)和最大值(a、b)升序排列的4个数字
- 为什么在全局范围内使用"extern int a"似乎不行?
- 在C#中处理C++指针而不使用unsafe的最佳方法
- 使用C++库在Android项目中修改gradle中的cmake参数,用于插入指令的测试
- 如何使用Google Mock来模拟gettimeofday()
- 如何使用默认参数等选择模板专业化
- 为什么使用 "this" 指针调用派生成员函数?
- 使用新行和不使用新行读取文件
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- 如何确定我已使用非编码文件到达 EOF?
- 如何在cuSparse中使用cusparseXcoo2csr从coo转换为csc
- 使用 LLVM 的 libc++ 时,__1 符号从何而来?
- 在std::cout之后使用std::cin时,换行符从何而来
- 为什么以及在何处在C++中使用引用和指针
- 基例如何影响使用递归函数的哪些行
- 如何使用c++在RethinkDb中列出表