我试图在拼接中使用mongodb haskell驱动程序访问mongo(快照驱动程序在snap> 0.5时被破坏)。从捕捉访问MongoDB
这是据我已经走到这一步:
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那里,蒙戈行动的IO单子内发生,我想拉那句话出。当我的理解分解是在编译拼接的结果:
Couldn't match expected type `IO a0'
with actual type `Action m0 [Database.MongoDB.Document]'
对不起张贴“送我的代码PLZ”的问题,但我在亏损:我要去错在何处,并我如何做这项工作?
谢谢,@mightybyte。我认为我忘了在“休息结果”之后加上'return'(它不会在这种状态下进行类型检查!)。 'find'('Action m Cursor')的结果与'rest'('Cursor - > Action m [Document]')之间的'bind'做到了这一点。 我在做什么错了,试图通过针对访问的值运行来将'rest'绑定到'Either Failure Cursor'。 再次感谢! – Khanzor