mongodb/Benchmark.hs

27 lines
716 B
Haskell

import Criterion.Main
import Control.Monad (forM_, void)
import qualified Database.MongoDB as M
import Data.Bson (Document, Field(..), Label, Val, Value(String, Doc, Bool),
Javascript, at, valueAt, lookup, look, genObjectId, (=:),
(=?))
import Database.MongoDB.Query
import qualified Data.Text as T
main = defaultMain [
bgroup "insert" [ bench "1000" $ nfIO doInserts ]
]
doInserts = do
let docs = (flip map) [0..1000] $ \i ->
["name" M.=: (T.pack $ "name " ++ (show i))]
pipe <- M.connect (M.host "127.0.0.1")
forM_ docs $ \doc -> do
void $ M.access pipe M.master "mongodb-haskell-test" $ M.insert "bigCollection" doc
M.close pipe