forked from xiaolzha/snaplet-mongoDB
-
Notifications
You must be signed in to change notification settings - Fork 0
A fork of the one on BitBucket
License
qingw/snaplet-mongoDB
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Snap Framework support for MongoDB as Snaplet Depends on Snap 0.7.* and <others> Based on work of Massive Tactical Their MongoDB helper package ( mostly used with Yesod ) is there: https://github.com/MassiveTactical/mt-mongodb Usage ( assuming you've used snap init to layout your app ): In Application.hs: ```Haskell import Snap.Snaplet.MongoDB ``` then add mongoDB snaplet to App state: ```Haskell data App = App { _heist :: Snaplet (Heist App) , _mongoDB :: Snaplet MongoDBSnaplet ... ``` then make App an instance of HasMongoDBState: ```Haskell instance HasMongoDBState App where getMongoDBState = with mongoDB Snap.get setMongoDBState s = undefined -- with mongo $ puts s ``` next in Site.hs ( in app = ...): ```Haskell m <- nestSnaplet "mongoDB" mongoDB $ mongoDBInit (host "localhost") 12 "my_db" ``` and don't forget to pass this "m" to your App data constructor.. ... and voila! Now you've got "withDB" function which "lifts" your Handler Monad so You can use db functions ( as described at mt-mongodb pages ). ex: ```Haskell some_handler :: Handler App App () some_handler = do ret <- withDB $ select [mongo| {} |][limit 10] case ret of ... ```
About
A fork of the one on BitBucket
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published