clojure 连接 mongodb示例
project.clj 文件添加monger依赖:[com.novemberain/monger "1.5.0"]
(defproject myClojure "0.1.0-SNAPSHOT"
:description "FIXME: write description"
:url "http://example.com/FIXME"
:license {:name "Eclipse Public License"
:url "http://www.eclipse.org/legal/epl-v10.html"}
:dependencies [
[org.clojure/clojure "1.5.1"]
[org.clojure/java.jdbc "0.0.6"]
[org.clojure/clojure-contrib "1.2.0"]
[mysql/mysql-connector-java "5.1.26"]
[com.novemberain/monger "1.5.0"]
])
示例代码:
; clojure connect to mysql
; ithomer.net
; 2013.12.10
(ns myClojure.mongo3
(:use [monger.core :only [connect! connect set-db! get-db]])
(:require [monger.core :as mg]
[monger.collection :as mc]))
;; 函数
(defn -main[& m]
;; (connect!) ;; 默认连接库 { :host "localhost" :port 27017 }
(connect! { :host "172.27.22.21" :port 27017}) ; 指定 host 和 port
(set-db! (mg/get-db "homer-db"))
;; 清空collection
(mc/remove "workflow")
;; 单条插入
(mc/insert "workflow" {:name "blog" :url "http://blog.ithomer.net" :copyright "ithomer" :dtime "2009-07-31"})
(mc/insert "workflow" {:name "forum" :url "http://blog.ithomer.net" :copyright "ithomer" :dtime "2013-12-01" })
;; 批量插入
(mc/insert-batch "workflow" [{:name "csdn" :url "http://blog.csdn.net/ithomer" :copyright "ithomer" :dtime "2010-01-01" }
{:name "csdn2" :url "http://blog.csdn.net/sunboy_2050" :copyright "ithomer" :dtime "2012-06-30" }])
;; 全量查询
(doseq [item (map list (mc/find-maps "workflow"))]
(println item))
;; 条件查询
(println) ;; 空一行
(doseq [item (mc/find-one "workflow" { :name "blog" })]
(println item))
(println (mc/find-one "workflow" { :name "blog" }))
;; 更新
(mc/update "workflow" {:name "csdn"} {:copyright "yanggang"} :upsert true)
;; 删除
(mc/remove "workflow" { :name "csdn2" })
;; 全量查询删除后的结果
(println)
(doseq [item (map list (mc/find-maps "workflow"))]
(println item))
;; 关闭连接
(monger.core/disconnect!)
)
; 执行函数
(-main)
运行结果:
({:_id #<ObjectId 52a6a9e1e4b0e53f523a9ddb>, :copyright ithomer, :name blog, :dtime 2009-07-31, :url http://blog.ithomer.net})
({:_id #<ObjectId 52a6a9e1e4b0e53f523a9ddc>, :copyright ithomer, :name forum, :dtime 2013-12-01, :url http://blog.ithomer.net})
({:_id #<ObjectId 52a6a9e1e4b0e53f523a9ddd>, :copyright ithomer, :name csdn, :dtime 2010-01-01, :url http://blog.csdn.net/ithomer})
({:_id #<ObjectId 52a6a9e1e4b0e53f523a9dde>, :copyright ithomer, :name csdn2, :dtime 2012-06-30, :url http://blog.csdn.net/sunboy_2050})
#<Entry _id=52a6a9e1e4b0e53f523a9ddb>
#<Entry copyright=ithomer>
#<Entry name=blog>
#<Entry dtime=2009-07-31>
#<Entry url=http://blog.ithomer.net>
#<BasicDBObject { "_id" : { "$oid" : "52a6a9e1e4b0e53f523a9ddb"} , "copyright" : "ithomer" , "name" : "blog" , "dtime" : "2009-07-31" , "url" : "http://blog.ithomer.net"}>
({:_id #<ObjectId 52a6a9e1e4b0e53f523a9ddb>, :copyright ithomer, :name blog, :dtime 2009-07-31, :url http://blog.ithomer.net})
({:_id #<ObjectId 52a6a9e1e4b0e53f523a9ddc>, :copyright ithomer, :name forum, :dtime 2013-12-01, :url http://blog.ithomer.net})
({:_id #<ObjectId 52a6a9e1e4b0e53f523a9ddd>, :copyright yanggang})
mongo数据库内容:
参考推荐:
Monger, a Clojure client for MongoDB
clojure简单操作mongo
分享到:
相关推荐
NULL 博文链接:https://clojure.iteye.com/blog/1741375
NULL 博文链接:https://clojure.iteye.com/blog/1742475
Clojure入门教程
Clojure学习教程.pdf
Clojure入门教程- Clojure – Functional Programming for the JVM中文版
Clojure入门介绍: Clojure - Functional Programming for the JVM
Clojure学习文档,Clojure-Web开发学习,覆盖了Clojure由浅入深的基本学习
本次演讲中,庄晓丹从AVOSCloud这个完全基于Clojure构建的移动云平台出发,分享Avos团队在Clojure上的实践和经验,为国内Clojure的传播贡献一份力量。
这是Programming Clojure 电子版的 纸质版本在美国亚马逊要到2009年3月才能上架 Paperback: 200 pages Publisher: Pragmatic Bookshelf (March 15, 2009) Language: English ISBN-10: 1934356336 ISBN-13: 978-...
Clojure is an opinionated language—it doesn’t try to cover all paradigms or provide every checklist bullet-point feature. Instead it provides the features needed to solve all kinds of real-world ...
[奥莱理] Clojure 经典实例 英文版 [奥莱理] Clojure Cookbook E Book ☆ 图书概要:☆ Get up to speed on the latest Ethernet capabilities for building and maintaining networks for everything from ...
Clear, practical Clojure for the professional programmer Professional Clojure is the experienced developer's guide to functional programming using the Clojure language. Designed specifically to meet ...
Practical Clojure Clojure语言书籍
clojure clojure clojureclojure clojure
Clojure oj 是一个新的 Clojure 库,用来与数据库进行通讯,灵感来自于 Ring. 示例代码: (require [oj.core :as oj]) [oj.modifiers :as db]) (defn find-by-username [username] (-> (db/query ...
【1】[Clojure编程乐趣](The Joy of Clojure).pdf 【2】Clojure – Functional Programming for the JVM中文版.pdf 【3】Clojure Cookbook.pdf 【4】Clojure Data Analysis Cookbook.pdf 【5】clojure Hand book...
[2013] Functional Programming Patterns in Scala and Clojure - Write Lean Programs for the JVM.(Michael Bevilacqua-Linn).[1937785475].pdf+epub.rar [2014] Clojure Cookbook - Recipes for Functional ...
clojure-cheatsheet, 用于Emacs的Clojure Cheatsheet 用于Emacs的难以置信方便的 Clojure Cheatsheet,更新为 Clojure,打包成简单,快速,可以搜索的离线形式: 状态准备使用基于 Clojure 1.7.0.安装如果你连接到 ...
Typed Clojure 保留了 Clojure 的优势,是 Clojure 的可选类型系统,也可以说是 Clojure 的一个库,改善了大量的静态类型安全检测。主要特性:从 Java 中保护你的 Clojure 程序,进行安全的互操作,正确的使用外部 ...