我正在尝试查询 MongoDB 实例以返回一个点。现在基本上是一个占位符,只是我正在尝试学习 Yesod 的基本数据类型。以下是我的处理程序路线。如何通过 id(或其他过滤器)查询数据库并将信息作为 JSON 返回?
{-# LANGUAGE EmptyDataDecls #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE QuasiQuotes #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE DeriveGeneric #-}
module Handler.Points where
import Import
mkPersist sqlSettings [persistLowerCase|
Point
name String
deriving Show
|]
$(deriveToJSON defaultOptions ''PointGeneric)
getPointsR :: String -> Handler Value
getPointsR pId = do
pts <- runDB $ selectList [PointName ==. pId] []
returnJson (pts :: [Entity Point])
这是我收到的错误消息。
Handler\Points.hs:25:20:
Couldn't match type `Database.Persist.MongoDB.MongoBackend'
with `persistent-1.2.3.0:Database.Persist.Sql.Types.SqlBackend'
In the second argument of `($)', namely
`selectList [PointName ==. pId] []'
In a stmt of a 'do' block:
pts <- runDB $ selectList [PointName ==. pId] []
In the expression:
do { pts <- runDB $ selectList [PointName ==. pId] [];
returnJson (pts :: [Entity Point]) }
Build failure, pausing...