gpt4 book ai didi

c++ - 如何使用 C++ 在 RethinkDb 中列出表

转载 作者:搜寻专家 更新时间:2023-10-31 02:21:06 25 4
gpt4 key购买 nike

当我在 PythonJavaScript 中做某事时,我总是有很多机会阅读特定库的文档并尝试大量的极小-微不足道的例子。

不幸的是,在 C++ 中,在文档中至少提供少量工作示例并不是很流行(出于什么原因?)。两个很好的例子是 MongoDb 的 C++ 客户端和 RethinkDb .

我的问题是关于 RethinkDB。在 Python 中我知道 how列出所有表名,不是因为有文档,我应该深入研究驱动程序代码,而是因为有一个非常方便的例子可以这样做:

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 - 这个伟大驱动程序的唯一开发者。

关于c++ - 如何使用 C++ 在 RethinkDb 中列出表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31856764/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com