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

Clojure 学习入门(8)—— 连接mongodb相关推荐

  1. Clojure 学习入门(8)- 连接mongodb

    clojure 连接 mongodb示例 project.clj 文件添加monger依赖: [com.novemberain/monger "1.5.0"] [css] view ...

  2. Clojure 学习入门(6)- 函数定义

    一.创建函数:  fn: fn是一个宏,用于定义一个简单的函数,如下:  [python] view plaincopy print? user=> (fn [] "hello&quo ...

  3. Clojure 学习入门(6)—— 函数定义

    一.创建函数: fn: fn是一个宏,用于定义一个简单的函数,如下:  user=> (fn [] "hello") #<user$eval375$fn__376 us ...

  4. Clojure 学习入门(9)- 连接redis

    clojure 连接 Redis 示例 project.cli 添加redis依赖: [clj-redis "0.0.12"] [delphi] view plaincopy pr ...

  5. Clojure 学习入门(7)- 连接mysql

    Clojure的contrib包中实现了对现有JDBC的封装,在wiki上有连接,该页面上包含了对不同的数据库的连接方法和基本的操作,但是这个页面上没有提供足够的信息,足够一个初学者能够使用Cloju ...

  6. Clojure 学习入门(1) - 学习资料

    转自:http://blog.csdn.net/ithomer/article/details/17225813 Clojure(发音类似"closure",['kləʊʒə(r) ...

  7. Clojure 学习入门(13)- binding

    Clojure里面是不支持变量的.Binding跟变量有点像,但是在被赋值之前是不允许改的,包括:全局binding, 线程本地(thread local)binding, 以及函数内的本地bindi ...

  8. Clojure 学习入门(10)- httpkit

    Http-kit 是主要由Java 和 Clojure开发,为Clojure定制的零依赖的HTTP lib,仅用3000多行代码,实现了高性能 Server,Client,Timer.代码量少,实现简 ...

  9. Clojure 学习入门(18)—— 数据类型

    如何表示和处理数据 Clojure是一种动态类型语言,这意味着你在程序中永远不需要明确定义符号.函数.或者参数的数据类型.但是,所有的值仍然有一个类型.字符串时是字符串,数字是数字,列表是列表,等等. ...

最新文章

  1. CListCtrl 使用技巧
  2. E - 秋实大哥与战争
  3. GCD学习之dispatch_barrier_async
  4. 理解Python的迭代器
  5. php mysql 写法_php 类的写法
  6. 2021 NOI游记
  7. aop注解配置切点 spring_Spring通过自定义注解灵活配置AOP切点
  8. 历史精华文章分类汇总,祝大家中秋快乐!
  9. 大数据产品开发流程规范_华为内部资料流出!揭秘华为数据湖:3大特点、6个标准、入湖流程...
  10. 关于ASP.Net页面上用户控件相互调用的方法 .
  11. Mock以及Mockito的使用
  12. Tensorflow如何读取文件
  13. POJ1546(进制转换)
  14. SqlServer 2008R2修改表结构提示“不允许保存更改”解决方案
  15. 超简单的ubuntu18.04安装teamview
  16. ae合成设置快捷键_解决AE提示错误预览需要2个或多个帧才能播放问题
  17. vmware未识别网络
  18. Tomcat日志切割工具 logrotate
  19. 网页抓取及信息提取(二)
  20. 李彦宏计算机领域的贡献,李彦宏:AI让计算机懂得人、响应人的需求

热门文章

  1. Linux命令:lp
  2. 徒步穿越神农架无人区
  3. 查看oracle执行计划方法( 一)
  4. 浙江省高校计算机等级考试二级Python 程序设计题0|2023备考
  5. 阿里面试应该注意什么?通过5轮面试的阿里实习生亲述
  6. hdu 1548 A strange lift (BFS)
  7. jieba中文分词组件
  8. Office2016官方下载 | Microsoft Office Professional Plus 2016完整版下载
  9. 炉石传说酒馆战棋一键拔线(windows)
  10. 一个故事,一段代码告诉你如何使用不同语言(GolangC#)提供相同的能力基于Consul做服务注册与发现