- 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.
- SQL Server 從入門到項目實踐(超值版)
- JavaScript從入門到精通(微視頻精編版)
- DevOps with Kubernetes
- Vue.js前端開發基礎與項目實戰
- Java從入門到精通(第5版)
- C#程序設計(慕課版)
- PostgreSQL 11從入門到精通(視頻教學版)
- Drupal 8 Configuration Management
- Mastering Apache Maven 3
- Natural Language Processing with Java and LingPipe Cookbook
- Spring+Spring MVC+MyBatis從零開始學
- Hadoop 2.X HDFS源碼剖析
- PyQt編程快速上手
- 零基礎學C語言(第4版)
- 百萬在線:大型游戲服務端開發