如何用Monger执行Mongo`forEach`(或运行我自己的JS)?

Joe*_*Joe 0 clojure mongodb monger

我正在使用Monger连接到Mongo.我想跑

db.collection.find().forEach(function(x) { db.collection-two.insert(...) })
Run Code Online (Sandbox Code Playgroud)

我无法在Monger文档中看到相关的"for each"条目,也无法通过JavaScript传递到另一个集合中.我该怎么做呢?

编辑这个问题是基于一个误解(forEach位于客户端API而不是服务器API).我会删除它,但我不能删除它.

dby*_*rne 5

您可以将每个文档作为Clojure映射的惰性序列处理:

(require 'monger.collection)

(doseq [x (monger.collection/find-maps "your-collection")]
  ;you can process x here, which is a vanilla clojure map
  (println x))
Run Code Online (Sandbox Code Playgroud)

你为什么要使用JavaScript?您使用的是ClojureScript,还是只考虑如何从mongodb shell编写代码?

免责声明: 使用doseq此处不起作用,可能不是惯用的,取决于您要完成的任务.使用map或者reduce可能更好,我只是想写一些与你的forEach示例代码最接近的东西.

有关: