This module exports several classes and combinators that operated on
Structured
types. Specifically, we provide the structured versions
of mongoDB
''s combinators, including structured query creation.
- insert :: (MonadIO' m, Structured a) => a -> Action m Value
- insert_ :: (MonadIO' m, Structured a) => a -> Action m ()
- insertMany :: (MonadIO' m, Structured a) => [a] -> Action m [Value]
- insertMany_ :: (MonadIO' m, Structured a) => [a] -> Action m ()
- insertAll :: (MonadIO' m, Structured a) => [a] -> Action m [Value]
- insertAll_ :: (MonadIO' m, Structured a) => [a] -> Action m ()
- save :: (MonadIO' m, Structured a) => a -> Action m ()
- delete :: MonadIO m => StructuredSelection -> Action m ()
- deleteOne :: MonadIO m => StructuredSelection -> Action m ()
- asc :: Selectable a f t => f -> OrderExp
- desc :: Selectable a f t => f -> OrderExp
- data StructuredQuery
- limit :: StructuredQuery -> Word32
- skip :: StructuredQuery -> Word32
- sort :: StructuredQuery -> [OrderExp]
- find :: (MonadControlIO m, Functor m) => StructuredQuery -> Action m StructuredCursor
- findOne :: (MonadIO m, Structured a) => StructuredQuery -> Action m (Maybe a)
- fetch :: (MonadIO m, Functor m, Structured a) => StructuredQuery -> Action m (Maybe a)
- count :: MonadIO' m => StructuredQuery -> Action m Int
- data StructuredSelection
- class StructuredSelect aQorS where
- select :: Structured a => QueryExp a -> aQorS
- class Val t => Selectable a f t | f -> a, f -> t where
- (.!) :: (Selectable r f t, Selectable t f' t') => f -> f' -> Nested f f'
- data QueryExp a
- (.*) :: Structured a => QueryExp a
- (.==) :: (Val t, Selectable a f t) => f -> t -> QueryExp a
- (./=) :: (Val t, Selectable a f t) => f -> t -> QueryExp a
- (.<) :: (Val t, Selectable a f t) => f -> t -> QueryExp a
- (.<=) :: (Val t, Selectable a f t) => f -> t -> QueryExp a
- (.>) :: (Val t, Selectable a f t) => f -> t -> QueryExp a
- (.>=) :: (Val t, Selectable a f t) => f -> t -> QueryExp a
- (.&&) :: QueryExp a -> QueryExp a -> QueryExp a
- (.||) :: QueryExp a -> QueryExp a -> QueryExp a
- not_ :: QueryExp a -> QueryExp a
- data StructuredCursor
- closeCursor :: MonadControlIO m => StructuredCursor -> Action m ()
- isCursorClosed :: MonadIO m => StructuredCursor -> Action m Bool
- nextBatch :: (Structured a, MonadControlIO m, Functor m) => StructuredCursor -> Action m [Maybe a]
- next :: (Structured a, MonadControlIO m) => StructuredCursor -> Action m (Either () (Maybe a))
- nextN :: (Structured a, MonadControlIO m, Functor m) => Int -> StructuredCursor -> Action m [Maybe a]
- rest :: (Structured a, MonadControlIO m, Functor m) => StructuredCursor -> Action m [Maybe a]
- module Database.MongoDB.Query
- data Value
Insert
insert :: (MonadIO' m, Structured a) => a -> Action m ValueSource
Inserts document to its corresponding collection and return the "_id" value.
insert_ :: (MonadIO' m, Structured a) => a -> Action m ()Source
Same as insert
but discarding result.
insertMany :: (MonadIO' m, Structured a) => [a] -> Action m [Value]Source
Inserts documents to their corresponding collection and return their "_id" values.
insertMany_ :: (MonadIO' m, Structured a) => [a] -> Action m ()Source
Same as insertMany
but discarding result.
insertAll :: (MonadIO' m, Structured a) => [a] -> Action m [Value]Source
Inserts documents to their corresponding collection and return
their "_id" values. Unlike insertMany
, this function keeps
inserting remaining documents even if an error occurs.
insertAll_ :: (MonadIO' m, Structured a) => [a] -> Action m ()Source
Same as insertAll
but discarding result.
Update
save :: (MonadIO' m, Structured a) => a -> Action m ()Source
Save document to collection. If the SObjId
field is set then
the document is updated, otherwise we perform an insert.
Delete
delete :: MonadIO m => StructuredSelection -> Action m ()Source
Delete all documents that match the selection/query.
deleteOne :: MonadIO m => StructuredSelection -> Action m ()Source
Delete the first documents that match the selection/query.
Order
asc :: Selectable a f t => f -> OrderExpSource
Sort by field, ascending
desc :: Selectable a f t => f -> OrderExpSource
Sort by field, descending
Query
data StructuredQuery Source
Wrapper for mongoDB
's Query
type.
limit :: StructuredQuery -> Word32Source
Maximum number of objects to return (default: 0, no limit).
skip :: StructuredQuery -> Word32Source
Number of matching objects to skip (default: 0).
sort :: StructuredQuery -> [OrderExp]Source
Sortresult by this order.
find :: (MonadControlIO m, Functor m) => StructuredQuery -> Action m StructuredCursorSource
Find documents satisfying query
findOne :: (MonadIO m, Structured a) => StructuredQuery -> Action m (Maybe a)Source
Find documents satisfying query
fetch :: (MonadIO m, Functor m, Structured a) => StructuredQuery -> Action m (Maybe a)Source
Same as findOne
but throws DocNotFound
if none match.
count :: MonadIO' m => StructuredQuery -> Action m IntSource
Count number of documents satisfying query.
Structured selections/queries
data StructuredSelection Source
Wrapper for mongoDB
's Selection
type.
class StructuredSelect aQorS whereSource
Analog to mongoDB
's Select
class
select :: Structured a => QueryExp a -> aQorSSource
Create a selection or query from an expression
class Val t => Selectable a f t | f -> a, f -> t whereSource
Class defining a selectable type. Type a
corresponds to the
record type, f
corresponds to the field or facet, and t
corresponds to the field/facet type.
(Selectable r f t, Selectable t f' t') => Selectable r (Nested f f') t' |
(.!) :: (Selectable r f t, Selectable t f' t') => f -> f' -> Nested f f'Source
Combining two field names to create a Nested
type.
(.*) :: Structured a => QueryExp aSource
Combinator for ==
(.==) :: (Val t, Selectable a f t) => f -> t -> QueryExp aSource
Combinator for ==
(./=) :: (Val t, Selectable a f t) => f -> t -> QueryExp aSource
Combinator for $ne
(.<) :: (Val t, Selectable a f t) => f -> t -> QueryExp aSource
Combinator for <
(.<=) :: (Val t, Selectable a f t) => f -> t -> QueryExp aSource
Combinator for <=
(.>) :: (Val t, Selectable a f t) => f -> t -> QueryExp aSource
Combinator for >
(.>=) :: (Val t, Selectable a f t) => f -> t -> QueryExp aSource
Combinator for >=
Cursor
data StructuredCursor Source
Wrapper for mongoDB
's Cursor
.
closeCursor :: MonadControlIO m => StructuredCursor -> Action m ()Source
Close the cursor.
isCursorClosed :: MonadIO m => StructuredCursor -> Action m BoolSource
Check if the cursor is closed.
nextBatch :: (Structured a, MonadControlIO m, Functor m) => StructuredCursor -> Action m [Maybe a]Source
Return next batch of structured documents.
next :: (Structured a, MonadControlIO m) => StructuredCursor -> Action m (Either () (Maybe a))Source
nextN :: (Structured a, MonadControlIO m, Functor m) => Int -> StructuredCursor -> Action m [Maybe a]Source
Return up to next N
documents.
rest :: (Structured a, MonadControlIO m, Functor m) => StructuredCursor -> Action m [Maybe a]Source
Return the remaining documents in query result.
Rexports
module Database.MongoDB.Query