MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Скоти използва MongoDB

mongoDB е достатъчно общ, за да работи във всяка монада, която е екземпляр на MonadBaseControl IO и MonadIO .

Например можете да изберете IO монада. В този случай ви трябва liftIO . runQuery в действието на Скоти:

import Web.Scotty
import Database.MongoDB
import qualified Data.Text.Lazy as T
import Control.Monad.IO.Class

runQuery :: Pipe -> Query -> IO [Document]
runQuery pipe query = access pipe master "nutrition" (find query >>= rest) 

main = do
  pipe <- connect $ host "127.0.0.1"
  scotty 3000 $ do
    get "/" $ do
      res <- liftIO $ runQuery pipe (select [] "stock_foods")
      text $ T.pack $ show res

След @Sebastian Philipp добавено MonadBaseControl екземпляр за Scotty.ActionT , няма нужда да вдигате нищо. Можете прозрачно да работите с mongoDB форма scotty. Просто променете подписа на типа и пуснете liftIO s:

runQuery :: Pipe -> Query -> ActionM [Document]
...
    get "/" $ do
      res <- runQuery pipe (select [] "stock_foods")
      text $ T.pack $ show res



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Сериализирайте един клас по два различни начина с Джаксън

  2. Не може да се свърже с mongodb errno:61 Връзката е отказана

  3. Смесване на PostgreSQL и MongoDB (като Django backends)

  4. Актуализация на MongoDB Collection:инициализиране на документ със стойности по подразбиране

  5. Как да направите картографиране, докато индексирате в elasticsearch