在Persistent Haskell MongoDB中使用selectList返回json列表

时间:2015-10-06 20:10:09

标签: mongodb haskell yesod

我正在开发一个yesod应用程序。我正在尝试编写一个只处理查询集合并返回所有结果的处理程序。

在我的配置/模型文件中,相关条目是

Survey json
    name              String
    questions         [QuestionId]
    deriving (Show)

我正在处理以下处理程序:

module Handler.ListSurveys where
import Import

getListSurveysR :: Handler Value
getListSurveysR = do
    res :: [Entity Survey]  <-  runDB $ selectList [] [] 
    return   $ object ["surveys" .= res]

这导致以下错误:

Handler/ListSurveys.hs:6:41:
    Couldn't match type ‘YesodPersistBackend App’
                   with ‘mongoDB-2.0.7:Database.MongoDB.Query.MongoContext’
    Expected type: YesodDB App [Entity Survey]
      Actual type: ReaderT
                     mongoDB-2.0.7:Database.MongoDB.Query.MongoContext
                     (HandlerT App IO)
                     [Entity Survey]
    In the second argument of ‘($)’, namely ‘selectList [] []’
    In a stmt of a 'do' block:
      res :: [Entity Survey] <- runDB $ selectList [] []

我真的可以使用一些帮助来了解这里的类型(对Haskell相对缺乏经验)以及如何解决这个问题。

0 个答案:

没有答案