MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Scotty Menggunakan MongoDB

mongoDB cukup umum untuk bekerja di monad apa pun yang merupakan turunan dari MonadBaseControl IO dan MonadIO .

Misalnya, Anda dapat memilih IO monad. Dalam hal ini Anda memerlukan liftIO . runQuery di dalam aksi scotty:

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

Setelah @Sebastian Philipp ditambahkan MonadBaseControl contoh untuk Scotty.ActionT , tidak perlu mengangkat apapun. Anda dapat bekerja secara transparan dengan mongoDB form scotty. Cukup ubah jenis tanda tangan dan jatuhkan 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. Sambungkan kembali dengan andal ke MongoDB

  2. pengecualian:ukuran BSONObj:-286331154 (0xEEEEEEEE) tidak valid. Ukuran harus antara 0 dan 16793600 (16 MB)

  3. MongoCursorException - Kursor tidak ditemukan (Pengandar PHP MongoDB)

  4. Simpul luwak menemukan kueri dalam lingkaran tidak berfungsi

  5. Perbarui nilai di MongoDB berdasarkan nilainya saat ini