2014-09-04 5 views
0

SQL 버전의 persistent에서는 SQL에 대한 직접 액세스가 rawSql 인 것으로 나타납니다. mongoDB 백엔드에서 저수준 명령에 접근하는 비슷한 방법이 있습니까?persistent-mongoDB에서 낮은 수준의 mongoDB 백엔드를 사용할 수 있습니까?

+0

가능한 중복 (http://stackoverflow.com/questions/11731953/mongodb-example-for-yesod-persistent가) 나는이 생각하지 않습니다 – iamnat

+0

입니다 MongoDB에 직접 API를 사용하는 것에 대해서는 다른 질문과 같이 중복되지 않습니다. –

답변

1

내가 생각했던 것보다 훨씬 쉬워졌습니다. Database.MongoDB을 가져 와서 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 [] 
[Yesod/영구에 대한 MongoDB의 예]의