让我们说评论表具有以下结构:
id | author | timestamp | body
Run Code Online (Sandbox Code Playgroud)
我想使用索引来有效地执行以下查询:
r.table('comments').getAll("me", {index: "author"}).orderBy('timestamp').run(conn, callback)
Run Code Online (Sandbox Code Playgroud)
我可以使用其他有效的方法吗?
看起来当前索引不支持表的过滤结果.在创建索引timestamp并将其添加为提示时,orderBy('timestamp', {index: timestamp})我收到以下错误:
RqlRuntimeError:索引order_by只能在TABLE上执行.在:
我在我的项目中使用RethinkDB并具有以下表结构:
data_item {
id: "generated_thing",
slug: "slug"
}
aggregation_of_data_items {
items: ["some", "ids", "from", "data_item", "table"]
}
Run Code Online (Sandbox Code Playgroud)
当我从内容表中删除项目时,我希望保持数据一致 - 从aggregation_of_data_items.items数组中删除ID - 是否有机会在一个请求中执行此操作(类似于MongoDB中的$ pull或$ pullAll)?
我对Rethinkdb感兴趣,并希望开发/测试它,但主要问题是:它没有Windows操作系统的包.我试图从源代码编译,这也是不可能的,因为没有任何指令.
使Windows可执行文件变得如此困难的原因是什么?有没有其他方法在Windows操作系统中安装Rethinkdb?即使非常小,并没有那个着名的应用程序有Windows二进制,但没有Rethinkdb.这让我很惊讶.另一个令人惊讶的是,有许多社区可执行文件用于其他操作系统但不是Windows
感谢您的理解并等待好的答案.
我将数据保存在RethinkDB数据库中.只要我不重启服务器,一切都很好.但是当我重新启动时,它给出了一个错误,说数据库不存在,尽管文件夹和数据确实存在于文件夹rethinkdb_data中.问题是什么 ?
在api文档页面rethinkdb.com/api/javascript我只能找到创建,删除和列出数据库的命令.
但是如何在RethinkDB中重命名数据库呢?
我正在使用一个看起来像这样的数据集:
"bitrates": [
{
"format": "mp3" ,
"rate": "128K"
} ,
{
"format": "aac" ,
"rate": "192K"
}
] ,
"details": [ ... ] ,
"id": 1 ,
"name": "For Those About To Rock We Salute You" ,
"price": 1026 ,
"requires_shipping": false ,
"sku": "ALBUM-1"
}
Run Code Online (Sandbox Code Playgroud)
我想在bitratesflexing 上创建一个二级索引{multi:true}.这是我的尝试:
r.db("music").table("catalog").indexCreate("bitrates", {multi: true})
Run Code Online (Sandbox Code Playgroud)
索引构建得很好,但是当我查询它时,没有任何返回 - 这似乎与我在这里读到的每个例子相反:
http://rethinkdb.com/docs/secondary-indexes/javascript/
我写的查询是这样的:
r.db("music").table("catalog").getAll(["mp3", "128K"], {index : "bitrates"})
Run Code Online (Sandbox Code Playgroud)
没有错误,只有0个结果(我有300个左右的文档,包含这些确切的数据).
我正在使用RethinkDB 2.0 RC1.
如何将第二条评论的文本更新为"新内容"
{
name: 'Me',
comments: [{
"author": "Joe S.",
"text": "I'm Thirsty"
},
{
"author": "Adder K.",
"text": "old content"
}]
}
Run Code Online (Sandbox Code Playgroud) 目前正在运行Ubuntu 14.04 x86_64.我想为我的RPi交叉编译rethinkdb用于实验目的,这在1.12中得到支持(人们显然已成功编译).
我已经安装了工具链:
sudo apt-get install g++-4.7-arm-linux-gnueabi gcc-arm-linux-gnueabi
export CXX=/usr/bin/arm-linux-gnueabi-g++-4.7
export CC=/usr/bin/arm-linux-gnueabi-gcc-4.7
export AR=/usr/bin/arm-linux-gnueabi-ar
export LD=/usr/bin/arm-linux-gnueabi-ld
Run Code Online (Sandbox Code Playgroud)
配置运行:
./configure --ccache --allow-fetch --without-tcmalloc
* Detecting system configuration
Bash: 4.3.8(1)-release
Use ccache: yes
C++ Compiler: GCC 4.7 (/usr/bin/arm-linux-gnueabi-g++-4.7)
Host System: arm-linux-gnueabi
Build System: Linux 3.13.0-24-generic x86_64
Cross-compiling: yes
Host Operating System: Linux
Without tcmalloc: yes
Build client drivers: no
Build Architecture: x86_64
Precompiled web assets: no
Protobuf compiler: /usr/bin/protoc
Node.js package manager: /usr/bin/npm
LESS css: external/less_1.6.2
CoffeeScript: external/coffee-script_1.7.1
Handlebars: external/handlebars_1.3.0
Browserify: external/browserify_3.24.13 …Run Code Online (Sandbox Code Playgroud) 给出样本数据,如:
{
'id': 1,
'things': [{'name': 'a'},{'name': 'b'},{'name': 'c'}]
}
Run Code Online (Sandbox Code Playgroud)
如何更新从嵌入式阵列中删除名称为"b"的数组项的文档?
r.table('test')
.get(1)
.update({things: r.row('things')????});
Run Code Online (Sandbox Code Playgroud) 链式有什么区别:
r.db('catbox').table("bw_mobile").filter(
r.row("value")("appVersion")("major").le(2)
).filter(
r.row("value")("appVersion")("minor").le(2)
).filter(
r.row("value")("appVersion")("patch").le(10)
)
Run Code Online (Sandbox Code Playgroud)
嵌套:
r.db('catbox').table("bw_mobile").filter(
r.row("value")("appVersion")("major").le(2).and(
r.row("value")("appVersion")("minor").le(2).and(
r.row("value")("appVersion")("patch").le(10)
)
)
)
Run Code Online (Sandbox Code Playgroud)
或 lambda 函数
r.db('catbox').table("bw_mobile").filter(
r.js("(function (session) {
return session.value.appVersion.major < 0
|| ( session.value.appVersion.major == 0 && session.value.appVersion.minor < 0 )
|| ( session.value.appVersion.major == 0 && session.value.appVersion.minor == 0 && session.value.appVersion.patch < 71 )
;
})")
)
Run Code Online (Sandbox Code Playgroud)
泰!