2014-09-04 3 views
0

В SQL-версии стойки появляется, что прямой доступ к SQL выполняется с помощью rawSql. Есть ли аналогичный способ доступа к командам низкого уровня из бэкэнда mongoDB?Есть ли способ использовать низкоуровневый сервер mongoDB от persistent-mongoDB?

+0

возможно дубликат [MongoDB Пример для Йесод/Persistent] (http://stackoverflow.com/questions/11731953/mongodb-example-for-yesod-persistent) – iamnat

+0

Я не думаю, что это дубликат, поскольку другой вопрос не говорит об использовании прямого API для MongoDB. –

ответ

1

Это оказалось намного проще, чем я думал. Просто импортируйте Database.MongoDB и используйте команды raw driver внутри runDB. Пример:

import Database.MongoDB 
... 
postCommentR :: DocumentId -> Handler Value 
postCommentR documentId = do 
    comment <- commentOr400 
    let idString = toPathPiece documentId 
     contents = commentBody comment 
    runDB $ DB.modify (DB.select ["_id" DB.=: idString] "Document") ["$push" DB.=: ["comments" DB.=: contents]] 
    returnJson $ object []