- Haskell Data Analysis Cookbook
- Nishant Shukla
- 236字
- 2021-12-08 12:43:33
Using MongoDB queries in Haskell
MongoDB is a nonrelational schemaless database. In this recipe, we will obtain all data from MongoDB into Haskell.
Getting ready
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
How to do it...
- Use the
OverloadedString
andExtendedDefaultRules
language extensions to make the MongoDB library easier to use:{-# LANGUAGE OverloadedStrings, ExtendedDefaultRules #-} import Database.MongoDB
- Define and implement
main
to set up a connection to the locally hosted database. Run MongoDB queries defined in therun
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 e
- In
run
, 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=[]}
How it works...
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.
See also
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.
- INSTANT Mock Testing with PowerMock
- 騰訊iOS測試實踐
- C/C++算法從菜鳥到達人
- Python從入門到精通(精粹版)
- Cassandra Design Patterns(Second Edition)
- Linux環境編程:從應用到內核
- 鋒利的SQL(第2版)
- 自然語言處理Python進階
- Hands-On Full Stack Development with Go
- Mastering Linux Security and Hardening
- Java網絡編程實戰
- Geospatial Development By Example with Python
- Magento 2 Beginners Guide
- Python一行流:像專家一樣寫代碼
- PHP動態網站開發實踐教程