2015-02-06 48 views
2

這取自API示例。通過字段中的子字符串篩選文檔

r.table('posts').filter(function(doc){ 
    return doc('message').match("Blah") 
}).run(conn, callback) 

我該如何用Haskell驅動程序做精確簡單的事情?

做這樣的事情

run' h' $ table "posts" # filter (\doc -> match "Blah" (doc ! "message")) 

...作爲匹配返回ReQL沒有任何意義,而不是BOOL。 像上面的JavaScript例子一樣使用過濾器內匹配的方法嗎?

謝謝。

+0

貌似有一個函數'運行::(表達式查詢,結果R)=> RethinkDBHandle - >查詢 - > IO r',可以用'Bool'實例化。或者,你可以對'run''('Datum')的結果進行模式匹配,該結構包含一個構造函數'Bool :: Bool - > Datum'。 – user2407038 2015-02-06 05:58:01

回答

1

我相信你在使用Prelude的filter

您應該使用Database.RethinkDB模塊中的filter。如果導入模塊合格:

import qualified Database.RethinkDB as R 

然後可以使用R.filter

run' h' $ table "posts" # R.filter (\doc -> match "Blah" (doc ! "message"))