我正在尝试编写最优的查询来查找没有特定字段的所有文档.有没有比我下面列出的例子更好的方法呢?
// Get the ids of all documents missing "location"
r.db("mydb").table("mytable").filter({location: null},{default: true}).pluck("id")
// Get a count of all documents missing "location"
r.db("mydb").table("mytable").filter({location: null},{default: true}).count()
Run Code Online (Sandbox Code Playgroud)
现在,这些查询在一个包含~40k文档的表上大约需要300-400ms,这看起来相当慢.此外,在这种特定情况下,"位置"属性包含纬度/经度并具有地理空间索引.
有没有办法实现这个目标?谢谢!
如何为rethinkdb
连接添加用户名和密码?
在我的网络中有100多台机器.其中只有2台机器在我的控制之下.2个中,一个是虚拟机,一个是物理机.
如果我rethinkdb
使用以下命令在虚拟机上运行
rethinkdb --bind all
Run Code Online (Sandbox Code Playgroud)
现在我rethinkdb http:// ip:8080
接触到网络中的所有机器.如何设置用户名和密码来限制他人?
如果我localhost:8080
在虚拟机中使用,则管理HTTP连接是无用的,因为它既不能在物理机器上也不在虚拟机上访问.
我该如何解决这个问题?
谢谢
RethinkDB可以有效地处理大型数据集(即多个tera字节)作为分析应用程序的DB吗?
我正在尝试在单个服务器请求中执行多个RQL命令,但我没有太多成功.我试过了r.union
,但它只适用于序列.我真正想要的是:
[r.db(..).table(..).get(id1).delete(),
r.db(..).table(..).get(id2).delete(),
r.db(..).table(..).insert(...)].run_all_at_once
Run Code Online (Sandbox Code Playgroud)
有没有办法做到这一点?
谢谢!
我有一个"人"数据表,它有一个唯一的键"id".我有一个id列表,我想要获取我将作为JSON数组从客户端发送到服务器的数据.服务器将该数据作为JSON数组接收.
现在有一种方法可以运行查询来获取每个ID的文档吗?
或者是我自己解析id并构建一个结果数组的唯一选择,然后将该数组发回.
到目前为止我已经尝试过使用......
getAll - 但我不能让它工作,因为它接受动态数量的参数,我不知道如何将我的数组值更改为动态数量的参数.
(例子......我希望能够做到如下所示,但我不能)
r.db('vp').table('user').getAll(["0", "0", "99"])
Run Code Online (Sandbox Code Playgroud)
我只能这样做......
r.db('vp').table('user').getAll("0", "0", "99")
Run Code Online (Sandbox Code Playgroud)expr和forEach - 如下所示,但我不认为这可行.
var arr = [];
r.expr(["0", "0", "99"]).forEach(function(id) {
})
Run Code Online (Sandbox Code Playgroud)我有以下数据结构:
壁
{
slug: "wall-slug",
nodes: {
"node1": "id-from-nodes-table-1",
"node2": "id-from-nodes-table-2"
}
}
Run Code Online (Sandbox Code Playgroud)
节点
{
id: "id-from-nodes-table-1",
something: "something"
}
Run Code Online (Sandbox Code Playgroud)
尝试以这种方式将来自节点表的文档合并到wall表中的节点对象中的明确节点:
r.db("test").table("walls").getAll("wall-slug", {index: "slug"}).map(function(row) {
return row.merge({nodes: row("nodes").map(function(node) {
return r.db("test").table("nodes").get(node);
})});
})
Run Code Online (Sandbox Code Playgroud)
它应该看起来像这样:
{
slug: "wall-slug",
nodes: {
"node1": {object from nodes table got by value from this property},
"node2": {object from nodes table got by value from this property}
}
}
Run Code Online (Sandbox Code Playgroud)
但我得到"无法将OBJECT转换为SEQUENCE"消息 - 找不到迭代节点对象属性的方法,并用另一个表中的对象替换它的属性值 - 是否有?
假设我有一个存储在名为'test'的RethinkDB表中的JSON(示例 - 可以在apple itunes rss feed中找到的实例):
{
"feed": {
"entry": [
{
"title": {
"label": "Some super duper app"
},
"summary": {
"label": "Bla bla bla..."
}
},
{
"title": {
"label": "Another awsome app"
},
"summary": {
"label": "Lorem ipsum blabla..."
}
}
]
}
}
Run Code Online (Sandbox Code Playgroud)
我将如何使用JavaScript编写一个查询ReQL为了获取汇总的所有条目(中entry
具有)标题包含字符串"XYZ"?我希望查询结果返回一个匹配的条目对象数组,而不是匹配的feed数组.
我开始使用RethinkDB,我在理解正在运行的一些查询时遇到了什么问题.
问题是使用暴露JSON API 的NodeJS应用程序(使用rethinkdbdash驱动程序)查询具有日期时间类型的对象 .如果我单独查询我的对象,如:
db.table('apples').max('timestamp');
Run Code Online (Sandbox Code Playgroud)
我获取时间戳字段的JavaScript日期,而如果我在查询中运行group by运算符,如:
db.table('apples').group('type').max('timestamp');
Run Code Online (Sandbox Code Playgroud)
我得到相同时间戳字段的日期时间假型(我认为这是正确的名称).就像是:
{
"$reql_type$": "TIME",
"epoch_time": 1423077646.772,
"timezone": "-07:00"
}
Run Code Online (Sandbox Code Playgroud)
这是预期的行为吗?它背后的逻辑是什么?
我想在我的JSON中返回序列化的iso8601日期,而不是这种数据类型,以使解析对客户端透明.
谢谢,
更新 这是2.2.7之前版本的已知问题.固定在这里.
我对Rethinkdb感兴趣,并希望开发/测试它,但主要问题是:它没有Windows操作系统的包.我试图从源代码编译,这也是不可能的,因为没有任何指令.
使Windows可执行文件变得如此困难的原因是什么?有没有其他方法在Windows操作系统中安装Rethinkdb?即使非常小,并没有那个着名的应用程序有Windows二进制,但没有Rethinkdb.这让我很惊讶.另一个令人惊讶的是,有许多社区可执行文件用于其他操作系统但不是Windows
感谢您的理解并等待好的答案.