Clojure 学习入门(8)—— 连接mongodb
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相关推荐
- Clojure 学习入门(8)- 连接mongodb
clojure 连接 mongodb示例 project.clj 文件添加monger依赖: [com.novemberain/monger "1.5.0"] [css] view ...
- Clojure 学习入门(6)- 函数定义
一.创建函数: fn: fn是一个宏,用于定义一个简单的函数,如下: [python] view plaincopy print? user=> (fn [] "hello&quo ...
- Clojure 学习入门(6)—— 函数定义
一.创建函数: fn: fn是一个宏,用于定义一个简单的函数,如下: user=> (fn [] "hello") #<user$eval375$fn__376 us ...
- Clojure 学习入门(9)- 连接redis
clojure 连接 Redis 示例 project.cli 添加redis依赖: [clj-redis "0.0.12"] [delphi] view plaincopy pr ...
- Clojure 学习入门(7)- 连接mysql
Clojure的contrib包中实现了对现有JDBC的封装,在wiki上有连接,该页面上包含了对不同的数据库的连接方法和基本的操作,但是这个页面上没有提供足够的信息,足够一个初学者能够使用Cloju ...
- Clojure 学习入门(1) - 学习资料
转自:http://blog.csdn.net/ithomer/article/details/17225813 Clojure(发音类似"closure",['kləʊʒə(r) ...
- Clojure 学习入门(13)- binding
Clojure里面是不支持变量的.Binding跟变量有点像,但是在被赋值之前是不允许改的,包括:全局binding, 线程本地(thread local)binding, 以及函数内的本地bindi ...
- Clojure 学习入门(10)- httpkit
Http-kit 是主要由Java 和 Clojure开发,为Clojure定制的零依赖的HTTP lib,仅用3000多行代码,实现了高性能 Server,Client,Timer.代码量少,实现简 ...
- Clojure 学习入门(18)—— 数据类型
如何表示和处理数据 Clojure是一种动态类型语言,这意味着你在程序中永远不需要明确定义符号.函数.或者参数的数据类型.但是,所有的值仍然有一个类型.字符串时是字符串,数字是数字,列表是列表,等等. ...
最新文章
- CListCtrl 使用技巧
- E - 秋实大哥与战争
- GCD学习之dispatch_barrier_async
- 理解Python的迭代器
- php mysql 写法_php 类的写法
- 2021 NOI游记
- aop注解配置切点 spring_Spring通过自定义注解灵活配置AOP切点
- 历史精华文章分类汇总,祝大家中秋快乐!
- 大数据产品开发流程规范_华为内部资料流出!揭秘华为数据湖:3大特点、6个标准、入湖流程...
- 关于ASP.Net页面上用户控件相互调用的方法 .
- Mock以及Mockito的使用
- Tensorflow如何读取文件
- POJ1546(进制转换)
- SqlServer 2008R2修改表结构提示“不允许保存更改”解决方案
- 超简单的ubuntu18.04安装teamview
- ae合成设置快捷键_解决AE提示错误预览需要2个或多个帧才能播放问题
- vmware未识别网络
- Tomcat日志切割工具 logrotate
- 网页抓取及信息提取(二)
- 李彦宏计算机领域的贡献,李彦宏:AI让计算机懂得人、响应人的需求