-
Notifications
You must be signed in to change notification settings - Fork 374
Raw Mongo
Greg Weber edited this page Sep 1, 2015
·
2 revisions
persistent-mongoDB has extended to support the most commonly used MongoDB operators in a type-safe way. However, you still may need to use the raw driver with Persistent at times.
Note also that persistent-mongoDB exposes functions to help with converting between a document and an entity: toInsertFields
, entityToFields
, docToEntityEither
, and docToEntityThrow
.
runDB
is still the MongoDB Action monad, so just run MongoDB queries as normal.
import Database.MongoDB((=:))
import Database.MongoDB (Document, Action, findOne)
import qualified Database.MongoDB as MongoDB
rawOne :: Trans.MonadIO m => MongoDB.Collection -> MongoDB.Selector -> Action m (Maybe Document)
rawOne collection q = findOne (MongoDB.select q collection)
theCollection :: Trans.MonadIO m
theCollection = rawOne $ "collection-name"
getTheR theId = do
Just doc <- runDB $ theCollection ["_id" =: theId]