我正在尝试在 splice 中使用 mongodb haskell 驱动程序(快照驱动程序似乎因 snap > 0.5 而损坏)访问 mongo。
这是我到目前为止所获得的:
testSplice :: Splice AppHandler
testSplice = do
record <- liftIO $ do
pipe <- runIOE $ connect (host "127.0.0.1")
results <- access pipe master "db" (find $ select [] "coll")
close pipe
rest result
return $ [TextNode $ T.pack $ show $ records]
我知道我需要在那里使用 liftIO ,因为 mongo 动作发生在 IO monad 中,我想把它拉回来。我的理解崩溃的地方是编译该拼接的结果:
Couldn't match expected type `IO a0'
with actual type `Action m0 [Database.MongoDB.Document]'
很抱歉发布“请向我发送代码”问题,但我不知所措:我哪里出错了,我该如何完成这项工作?