couchdb-conduit-0.1.0.1: Couch DB client library using http-conduit and aeson

Database.CouchDB.Conduit.View

Contents

Description

Higher-level functions to interact with CouchDB views.

Synopsis

Acccessing views

In contrast to the functions of access to documents that are loaded into memory entirely. couchView and couchView' combines the incredible power of http-conduit and attoparsec to allow you to process objects in constant space.

As data is read from the network, it is fed into attoparsec. When attoparsec completes parsing row, it sent to Sink. Sink can be composed from many conduits with sink at the end, such as rowValue, view conduits from Database.CouchDB.Conduit.Explicit and Database.CouchDB.Conduit.Generic, and many others. See Data.Conduit for details and documentation.

couchViewSource

Arguments

:: MonadCouch m 
=> Path

Design document

-> Path

View name

-> Query

Query parameters

-> ResourceT m (Source m Object) 

Run CouchDB view in manner like http.

 runCouch def {couchDB="mydb"} $ do

     -- Print all upon receipt.
     src <- couchView "mydesign" "myview" [] 
     src $$ CL.mapM_ (liftIO . print)

     -- ... Or extract row value and consume
     src' <- couchView "mydesign" "myview" [] 
     res <- src' $= rowValue $$ CL.consume

couchView'Source

Arguments

:: MonadCouch m 
=> Path

Design document

-> Path

View name

-> Query

Query parameters

-> Sink Object m a

Sink for handle view rows.

-> ResourceT m a 

Brain-free version of runCouch. Takes Sink to consume response.

 runCouch def {couchDB="mydb"} $ do

     -- Print all upon receipt.
     couchView' "mydesign" "myview" [] $ CL.mapM_ (liftIO . print)

     -- ... Or extract row value and consume
     res <- couchView' "mydesign" "myview" [] $ rowValue =$ CL.consume

rowValue :: ResourceIO m => Conduit Object m ValueSource

Conduit for extract "value" field from CouchDB view row.

Manipulating views

couchViewPutSource

Arguments

:: MonadCouch m 
=> Path

Design document

-> Path

View name

-> ByteString

Language. "javascript" for example.

-> ByteString 
-> Maybe ByteString 
-> ResourceT m Revision 

Helper for put new views in design documents.

Cauntion Current implementation kill all other info except views. Use wise.