-
Book Overview & Buying
-
Table Of Contents
-
Feedback & Rating
Haskell Data Analysis cookbook
By :
MongoDB is a nonrelational schemaless database. In this recipe, we will obtain all data from MongoDB into Haskell.
We need to install MongoDB on our local machine and have a database instance running in the background while we run the code in this recipe.
MongoDB installation instructions are located at http://www.mongodb.org. On Debian-based operating systems, we can use apt-get to install MongoDB, using the following command line:
$ sudo apt-get install mongodb
Run the database daemon by specifying the database file path as follows:
$ mkdir ~/db $ mongod --dbpath ~/db
Fill up a "people" collection with dummy data as follows:
$ mongo > db.people.insert( {first: "Joe", last: "Shmoe"} )
Install the MongoDB package from Cabal using the following command:
$ cabal install mongoDB
OverloadedString and ExtendedDefaultRules language extensions to make the MongoDB library easier to use:{-# LANGUAGE OverloadedStrings, ExtendedDefaultRules #-}
import Database.MongoDBmain to set up a connection to the locally hosted database. Run MongoDB queries defined in the run function as follows:main :: IO ()
main = do
let db = "test"
pipe <- runIOE $ connect (host "127.0.0.1")
e <- access pipe master db run
close pipe
print erun, we can combine multiple operations. For this recipe, run will only perform one task, that is, gather data from the "people" collection:run = getData
getData = rest =<< find (select [] "people") {sort=[]}A pipe is established by the driver between the running program and the database. This allows running MongoDB operations to bridge the program with the database. The find function takes a query, which we construct by evoking the select :: Selector -> Collection -> aQueryOrSelection function.
Other functions can be found in the documentation at http://hackage.haskell.org/package/mongoDB/docs/Database-MongoDB-Query.html.
If the MongoDB database is on a remote server, refer to the Reading from a remote MongoDB server recipe to set up a connection with remote databases.
Change the font size
Change margin width
Change background colour