prolude-0.0.0.23: Prolude/MongoDB.hs
{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE ConstraintKinds #-}
module Prolude.MongoDB
( -- * MongoDB re-exports
module Database.MongoDB
-- * Type aliases
-- $type
, MongoAction
, MongoCollection
, MongoDatabase
, MongoDocument
, MongoField
, MongoLabel
, MongoQuery
, MongoValue
, MongoVal
-- * Pattern synonyms
-- $synonyms
, pattern MongoArray
, pattern MongoBin
, pattern MongoBool
, pattern MongoDoc
, pattern MongoFloat
, pattern MongoFun
, pattern MongoInt32
, pattern MongoInt64
, pattern MongoJavaScr
, pattern MongoMd5
, pattern MongoMinMax
, pattern MongoNull
, pattern MongoObjId
, pattern MongoRegEx
, pattern MongoStamp
, pattern MongoString
, pattern MongoSym
, pattern MongoUserDef
, pattern MongoUTC
, pattern MongoUuid
-- * Function aliases
-- $functions
, mongoFailed
, mongoInsert_
, mongoModified
, mongoSelect
, mongoUpdateMany
-- * Operators aliases
-- $operators
, (>=:)
, (>:)
, (<=:)
, (<:)
, (<-:)
, (!<-:)
, (!=:)
)
where
import Database.MongoDB (ObjectId, UpdateOption(MultiUpdate), fval, genObjectId, (=:))
import qualified Control.Monad.IO.Class as Monad
import qualified Data.Int as Int
import qualified Data.Text as Text
import qualified Data.Time as Time
import qualified Database.MongoDB as Mongo
{- $type
We created type aliases for specific Mongo types. These include: Action, Collection, Database, Document, Field, Label, Query, Selector, Val, and Value.
-}
{- $synonyms
We created pattern synonyms for the MongoValue constructors.
-}
{- $functions
We created aliases for specific Mongo functions. These include: failed, insert_, nModified, select, and updateMany.
-}
{- $operators
We created aliases for specific Mongo operators. These include: (>=:), (>:), (<=:), (<:), (<-:), (!<-:), and (!=:).
-}
type MongoAction = Mongo.Action
type MongoCollection = Mongo.Collection
type MongoDatabase = Mongo.Database
type MongoDocument = Mongo.Document
type MongoField = Mongo.Field
type MongoLabel = Mongo.Label
type MongoQuery = Mongo.Query
type MongoSelector = Mongo.Selector
type MongoVal = Mongo.Val
type MongoValue = Mongo.Value
(>=:) :: MongoVal v => MongoLabel -> v -> MongoField
f >=: x = f =: [(Text.pack "$gte") =: x]
(>:) :: MongoVal v => MongoLabel -> v -> MongoField
f >: x = f =: [(Text.pack "$gt") =: x]
(<=:) :: MongoVal v => MongoLabel -> v -> MongoField
f <=: x = f =: [(Text.pack "$lte") =: x]
(<:) :: MongoVal v => MongoLabel -> v -> MongoField
f <: x = f =: [(Text.pack "$lt") =: x]
(<-:) :: MongoVal v => MongoLabel -> [v] -> MongoField
f <-: x = f =: [(Text.pack "$in") =: x]
(!<-:) :: MongoVal v => MongoLabel -> [v] -> MongoField
f !<-: x = f =: [(Text.pack "$nin") =: x]
(!=:) :: MongoVal v => MongoLabel -> v -> MongoField
f !=: x = f =: [(Text.pack "$ne") =: x]
pattern MongoFloat :: Double -> MongoValue
pattern MongoFloat x = Mongo.Float x
pattern MongoString :: Text.Text -> MongoValue
pattern MongoString x = Mongo.String x
pattern MongoDoc :: Mongo.Document -> MongoValue
pattern MongoDoc x = Mongo.Doc x
pattern MongoArray :: [Mongo.Value] -> MongoValue
pattern MongoArray x = Mongo.Array x
pattern MongoBin :: Mongo.Binary -> MongoValue
pattern MongoBin x = Mongo.Bin x
pattern MongoFun :: Mongo.Function -> MongoValue
pattern MongoFun x = Mongo.Fun x
pattern MongoUuid :: Mongo.UUID -> MongoValue
pattern MongoUuid x = Mongo.Uuid x
pattern MongoMd5 :: Mongo.MD5 -> MongoValue
pattern MongoMd5 x = Mongo.Md5 x
pattern MongoUserDef :: Mongo.UserDefined -> MongoValue
pattern MongoUserDef x = Mongo.UserDef x
pattern MongoObjId :: Mongo.ObjectId -> MongoValue
pattern MongoObjId x = Mongo.ObjId x
pattern MongoBool :: Bool -> MongoValue
pattern MongoBool x = Mongo.Bool x
pattern MongoUTC :: Time.UTCTime -> MongoValue
pattern MongoUTC x = Mongo.UTC x
pattern MongoNull :: MongoValue
pattern MongoNull = Mongo.Null
pattern MongoRegEx :: Mongo.Regex -> MongoValue
pattern MongoRegEx x = Mongo.RegEx x
pattern MongoJavaScr :: Mongo.Javascript -> MongoValue
pattern MongoJavaScr x = Mongo.JavaScr x
pattern MongoSym :: Mongo.Symbol -> MongoValue
pattern MongoSym x = Mongo.Sym x
pattern MongoInt32 :: Int.Int32 -> MongoValue
pattern MongoInt32 x = Mongo.Int32 x
pattern MongoInt64 :: Int.Int64 -> MongoValue
pattern MongoInt64 x = Mongo.Int64 x
pattern MongoStamp :: Mongo.MongoStamp -> MongoValue
pattern MongoStamp x = Mongo.Stamp x
pattern MongoMinMax :: Mongo.MinMaxKey -> MongoValue
pattern MongoMinMax x = Mongo.MinMax x
{-# COMPLETE
MongoFloat
, MongoString
, MongoDoc
, MongoArray
, MongoBin
, MongoFun
, MongoUuid
, MongoMd5
, MongoUserDef
, MongoObjId
, MongoBool
, MongoUTC
, MongoNull
, MongoRegEx
, MongoJavaScr
, MongoSym
, MongoInt32
, MongoInt64
, MongoStamp
, MongoMinMax #-}
mongoFailed :: Mongo.WriteResult -> Bool
mongoFailed = Mongo.failed
mongoInsert_ :: Monad.MonadIO m => MongoCollection -> MongoDocument -> MongoAction m ()
mongoInsert_ = Mongo.insert_
mongoModified :: Mongo.WriteResult -> Maybe Int
mongoModified = Mongo.nModified
mongoSelect :: MongoSelector -> MongoCollection -> MongoQuery
mongoSelect = Mongo.select
mongoUpdateMany
:: Monad.MonadIO m
=> MongoCollection
-> [(MongoSelector, MongoDocument, [UpdateOption])]
-> MongoAction m Mongo.WriteResult
mongoUpdateMany = Mongo.updateMany