Database.CouchDB
Contents
Description
Interface to CouchDB.
- data CouchMonad a
- runCouchDB :: String -> Int -> CouchMonad a -> IO a
- runCouchDB' :: CouchMonad a -> IO a
- data DB
- db :: String -> DB
- isDBString :: String -> Bool
- createDB :: String -> CouchMonad ()
- dropDB :: String -> CouchMonad Bool
- data Doc
- data Rev
- doc :: String -> Doc
- isDocString :: String -> Bool
- newNamedDoc :: JSON a => DB -> Doc -> a -> CouchMonad (Either String Rev)
- newDoc :: JSON a => DB -> a -> CouchMonad (Doc, Rev)
- updateDoc :: JSON a => DB -> (Doc, Rev) -> a -> CouchMonad (Maybe (Doc, Rev))
- deleteDoc :: DB -> (Doc, Rev) -> CouchMonad Bool
- forceDeleteDoc :: DB -> Doc -> CouchMonad Bool
- getDocPrim :: DB -> Doc -> CouchMonad (Maybe (Doc, Rev, [(String, JSValue)]))
- getDoc :: JSON a => DB -> Doc -> CouchMonad (Maybe (Doc, Rev, a))
- getAndUpdateDoc :: JSON a => DB -> Doc -> (a -> IO a) -> CouchMonad (Maybe Rev)
- getAllDocIds :: DB -> CouchMonad [Doc]
- data CouchView
- newView :: String -> String -> [CouchView] -> CouchMonad ()
- queryView :: JSON a => DB -> Doc -> Doc -> [(String, JSValue)] -> CouchMonad [(Doc, a)]
- queryViewKeys :: DB -> Doc -> Doc -> [(String, JSValue)] -> CouchMonad [Doc]
Initialization
data CouchMonad a Source
A computation that interacts with a CouchDB database. This monad
encapsulates the IO monad, a persistent HTTP connnection to a
CouchDB database and enough information to re-open the connection
if it is closed.
Instances
Arguments
| :: String | hostname |
| -> Int | port |
| -> CouchMonad a | |
| -> IO a |
runCouchDB' :: CouchMonad a -> IO aSource
Connects to the CouchDB server at localhost:5984.
Databases
isDBString :: String -> BoolSource
createDB :: String -> CouchMonad ()Source
Creates a new database. Throws an exception if the database already exists.
Arguments
| :: String | |
| -> CouchMonad Bool | False if the database does not exist |
Documents
isDocString :: String -> BoolSource
Arguments
| :: JSON a | |
| => DB | database name |
| -> a | document body |
| -> CouchMonad (Doc, Rev) | id and rev of new document |
Arguments
| :: DB | database |
| -> Doc | document identifier |
| -> CouchMonad Bool |
Delete a doc by document identifier (revision number not needed). This operation first retreives the document to get its revision number. It fails if the document doesn't exist or there is a conflict.
Arguments
| :: DB | database name |
| -> Doc | document name |
| -> CouchMonad (Maybe (Doc, Rev, [(String, JSValue)])) |
|
Gets a document as a raw JSON value. Returns the document id,
revision and value as a JSObject. These fields are queried lazily,
and may fail later if the response from the server is malformed.
Arguments
| :: DB | database name |
| -> CouchMonad [Doc] |
Views
Creating and querying views
Arguments
| :: String | database name |
| -> String | view set name |
| -> [CouchView] | views |
| -> CouchMonad () |