2014-09-12 81 views
2

我想獲得一個表中的所有文檔,其ID與給定列表中的一個匹配。 SQL中的某些內容如下所示:SELECT * FROM table WHERE id IN (1, 2, 3, 4)。 RethinkDB中最簡單和最有效的方法是什麼?在RethinkDB中按ID列表篩選

回答

9

如果要通過主鍵來過濾

arrayOfIds = [1,2,3,4] 
r.table("tableName").getAll(r.args(arrayOfIds)).run(...) 

如果你想在球場上「富」,是不是主鍵

arrayOfIds = [1,2,3,4] 
r.table('tableName").indexCreate('foo").run(...) 
r.table("tableName").getAll(r.args(arrayOfIds), {index: "foo"}).run(...) 

而如果沒有索引篩選:

arrayOfIds = [1,2,3,4] 
r.table('tableName").filter(function(doc) { 
    return r.expr(arrayOfIds).contains(doc("foo")) 
}).run(...) 

這些片段是用JavaScript編寫的。如果您使用Python/Ruby,請使用下劃線而不是駝峯。

+0

非常詳細的答案,謝謝! – linkyndy 2014-09-13 08:35:11