大家好,
我有一个脚本,使用 monger 库在 MongoDB 数据库中更新数据。在打开 repl 并复制粘贴代码时,所有的更新都会执行,但是使用 lein run
就无法执行。
相关的代码
(ns covid-data-management.core
(:require [oz.core :as oz]
[monger.core :as mg]
[monger.collection :as mc]))
(defonce db (mg/get-db (mg/connect) "covid19"))
(def coll "surveys")
(defn update-symptoms []
(println "In the update-symptoms definitions")
(map (fn [x]
(mc/update db coll {} {"$set" {:symptoms ["symptom1" "symptom2"]}}))))
(defn main [& args]
(update-symptoms))
在 REPL 中粘贴代码确实做到了预期的事情:设置了新的症状。当使用 lein run
运行时,控制台会打印出字符串 "在更新的症状定义中",但是数据库本身并没有改变。
我怀疑这与 Clojure 的无副作用和惰性特性有关,但尚未找到解决方案。非常感谢任何帮助!
谢谢!
j.