Skip to content
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.

Persistent's test case

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]
Clone this wiki locally