我的最终目标是从运行MongoDB查询的scotty端点返回JSON响应。到目前为止,我已经写下了查询,但它返回了一个文档,我想将该文档转换为我已定义的自定义类型。
这是我到目前为止的代码:
data User = User { username :: String } deriving (Show, Read)
getUsers :: Pipe -> IO [Document]
getUsers pipe = access pipe master "mydb" (find (select [] "users") >>= rest)
server :: Pipe -> ScottyM()
server pipe =
get "/" $ do
res <- liftIO $ getUsers pipe
-- json $ T.pack $ show res
最后一行是我获取查询结果的地方,我想知道如何轻松地将Document数据转换为我在顶部声明的User类型。注释掉的行是我尝试某种序列化但不幸的是结果是无效的JSON。