Add type signatures and extension in code

Fixes #71
This commit is contained in:
Sibi Prabakaran 2016-11-07 21:13:56 +05:30
parent 6e6c591065
commit 7fcebcbb0a
No known key found for this signature in database
GPG key ID: D19E3E0EBB557613

View file

@ -1,42 +1,54 @@
{- |
Client interface to MongoDB database management system.
Simple example below. Use with language extensions /OverloadedStrings/ & /ExtendedDefaultRules/.
> import Database.MongoDB
> import Control.Monad.Trans (liftIO)
>
> main = do
> pipe <- connect (host "127.0.0.1")
> e <- access pipe master "baseball" run
> close pipe
> print e
>
> run = do
> clearTeams
> insertTeams
> allTeams >>= printDocs "All Teams"
> nationalLeagueTeams >>= printDocs "National League Teams"
> newYorkTeams >>= printDocs "New York Teams"
>
> clearTeams = delete (select [] "team")
>
> insertTeams = insertMany "team" [
> ["name" =: "Yankees", "home" =: ["city" =: "New York", "state" =: "NY"], "league" =: "American"],
> ["name" =: "Mets", "home" =: ["city" =: "New York", "state" =: "NY"], "league" =: "National"],
> ["name" =: "Phillies", "home" =: ["city" =: "Philadelphia", "state" =: "PA"], "league" =: "National"],
> ["name" =: "Red Sox", "home" =: ["city" =: "Boston", "state" =: "MA"], "league" =: "American"] ]
>
> allTeams = rest =<< find (select [] "team") {sort = ["home.city" =: 1]}
>
> nationalLeagueTeams = rest =<< find (select ["league" =: "National"] "team")
>
> newYorkTeams = rest =<< find (select ["home.state" =: "NY"] "team") {project = ["name" =: 1, "league" =: 1]}
>
> printDocs title docs = liftIO $ putStrLn title >> mapM_ (print . exclude ["_id"]) docs
>
-}
-- |
-- Client interface to MongoDB database management system.
--
-- Simple example below.
--
-- @
-- {\-\# LANGUAGE OverloadedStrings \#\-}
-- {\-\# LANGUAGE ExtendedDefaultRules \#\-}
--
-- import Database.MongoDB
-- import Control.Monad.Trans (liftIO)
--
-- main :: IO ()
-- main = do
-- pipe <- connect (host \"127.0.0.1\")
-- e <- access pipe master \"baseball\" run
-- close pipe
-- print e
--
-- run :: Action IO ()
-- run = do
-- clearTeams
-- insertTeams
-- allTeams >>= printDocs \"All Teams\"
-- nationalLeagueTeams >>= printDocs \"National League Teams\"
-- newYorkTeams >>= printDocs \"New York Teams\"
--
-- clearTeams :: Action IO ()
-- clearTeams = delete (select [] \"team\")
--
-- insertTeams :: Action IO [Value]
-- insertTeams = insertMany \"team\" [
-- [\"name\" =: \"Yankees\", \"home\" =: [\"city\" =: \"New York\", \"state\" =: \"NY\"], \"league\" =: \"American\"],
-- [\"name\" =: \"Mets\", \"home\" =: [\"city\" =: \"New York\", \"state\" =: \"NY\"], \"league\" =: \"National\"],
-- [\"name\" =: \"Phillies\", \"home\" =: [\"city\" =: \"Philadelphia\", \"state\" =: \"PA\"], \"league\" =: \"National\"],
-- [\"name\" =: \"Red Sox\", \"home\" =: [\"city\" =: \"Boston\", \"state\" =: \"MA\"], \"league\" =: \"American\"] ]
--
-- allTeams :: Action IO [Document]
-- allTeams = rest =<< find (select [] \"team\") {sort = [\"home.city\" =: 1]}
--
-- nationalLeagueTeams :: Action IO [Document]
-- nationalLeagueTeams = rest =<< find (select [\"league\" =: \"National\"] \"team\")
--
-- newYorkTeams :: Action IO [Document]
-- newYorkTeams = rest =<< find (select [\"home.state\" =: \"NY\"] \"team\") {project = [\"name\" =: 1, \"league\" =: 1]}
--
-- printDocs :: String -> [Document] -> Action IO ()
-- printDocs title docs = liftIO $ putStrLn title >> mapM_ (print . exclude [\"_id\"]) docs
--
-- @
--
module Database.MongoDB (
module Data.Bson,