-
Notifications
You must be signed in to change notification settings - Fork 374
Raw Mongo
David Feng edited this page Aug 28, 2013
·
2 revisions
You will need to use the raw driver with Persistent to deal with embedded fields.
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]