问题标签 [monger]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
222 浏览

clojure - 将 JSON 添加到 mongo 数据库中的数组

我正在尝试将 json 映射添加到我的数据库中的数组中,monger但出现了问题。我在 monger 文档中找到了如何做到这一点,但$push没有$addToSet工作:

这是我的功能:

这就是我调用这个函数的方式nREPL

有任何想法吗?

编辑

这是我的文件drivers-collection

我的汽车阵列是空的,我正在尝试向其中添加车辆。

0 投票
1 回答
2848 浏览

multithreading - 防止 mongodb 死于 'state should be: open'

我在多线程 clojure 应用程序中使用 mongodb,使用 monger 库,我的一个生产者线程正在死去

conn.close()我发现了很多其他解决这个问题的方法,它们都通过在某处 删除一些调用来解决。

我有一个在启动时创建的连接,我唯一调用的地方close是在关机期间。java驱动程序管理一个线程池,所以我也不完全确定我们在谈论什么连接。从查询返回的 DbObject 是否有自己的专用连接,而正是这个连接正在消亡?

我尝试通过指定:socket-keep-alive true, 并明确设置:socket-timeout为 0 (这是默认值,意味着无限制)来解决这个问题,但无济于事。

在 monger 中有一些with-open的用法,我认为这可能会导致我遇到的问题。如果有一些与 db 对象相关联的连接,在此处传递,它会被关闭,我尝试删除所有对 db 对象的重用,但这没有效果。

另一个想法是,这with-open可能会与其中的惰性内容产生不良交互,但是将所有内容包装在 adoall中以使其变得渴望也没有任何效果。

我正在针对副本集运行,并且我在从属 mongodb 上本地运行ReadPreference/secondary.

关于可能出了什么问题的任何其他想法?

0 投票
1 回答
231 浏览

clojure - 哪个更快?使用条件 fn 或 get-in 映射或减少?

我正在使用 monger 并使用 find-maps 从我的 mongo nosql 数据库中获取一批。它返回一个数组,我计划将其用作函数调用链下游的数据存储参数(引用)。在这些未来的函数调用中,我将可以访问相应的 id。我希望将此 id 用作在我的数据存储中获取的查找,这样我就不必再打一个贩子电话了。数组形式的数据存储似乎不是通过 id 访问对象的最快方法......但我不确定。

如果我需要从这个数据存储数组派生一个对象,那么我需要使用这样的函数(必须在每个元素上记录(n))

相反,如果在我最初的 monger 调用之后,我使用如下函数创建一个 key/val 哈希对象:

那么也许我的后续调用可以改为使用 get-in 并且会更快,因为我将通过键获取?

我很困惑,因为:当我使用 get-in 时,它是否必须遍历 key/val has object 中的每个键,直到它找到键和 fetch_id 之间的匹配项:

为什么 get-in 不必在每个键上记录(n)?也许它更快,因为它可以在找到第一个“匹配”时停止,其中 map/reducing 必须全程通过 log(n)?这比必须遍历数组中的每个元素并检查 id 是否与 fetch_id 匹配要快得多?

我非常感谢您能提供的帮助。

0 投票
2 回答
6451 浏览

java - CompilerException java.lang.ClassNotFoundException: org.bson.types 尝试使用 Monger 连接到 mongo

尝试使用 Monger 连接到 Mongo,我收到以下错误

CompilerException java.lang.ClassNotFoundException: org.bson.types

[com.novemberain/monger "3.1.0"]在 project.clj 中添加了依赖项并重新安装了 lein,并尝试将 bson.types 导入为:import [org.bson.types ObjectId]。

monger 依赖项在我自动生成的 pom.xml 文件中反映为

我错过了任何依赖还是我做错了什么?.

0 投票
1 回答
1490 浏览

mongodb - Monger 缺少 java.math.Bigdecimal 的编解码器

尝试使用带有浮点数/大十进制的 Monger 将文档插入到 Mongo

(mc/insert db "products" {:name "Shirt" :Price 300.00M })

并得到以下错误。

错误 compojure.api.exception - 找不到类 java.math.BigDecimal 的编解码器。

当我删除价格时,插件工作正常。我是否缺少任何编解码器依赖项或我做错了什么?谷歌搜索没有太大帮助。提前致谢。

0 投票
1 回答
98 浏览

mongodb - 在 Clojure MongoDb Driver Monger 中设置 ReadPreference

在 Monger 中使用 find-maps 时如何设置 ReadPreference?Monger 文档仅指定了 monger.query 的 with-collection 的用法,如下所示

0 投票
2 回答
48 浏览

mongodb - 与 Monger 一起运行“repairDatabase”?

是否可以使用Monger执行“repairDatabase”命令?如果有怎么办?

0 投票
2 回答
181 浏览

mongodb - monger 向量中的关键字项转换为字符串

使用 monger,我正在编写一个文档,其中包含一个带有关键字项的向量到一个集合,例如

按预期返回

但是如果我获取特定的文档,例如

关键字已更改为字符串

这是预期的行为吗?如果是,为什么?

0 投票
0 回答
100 浏览

mongodb - 在 Clojure 中添加 ISODate 包装器

当我在 Mongodb shell 的插入中执行 new Date() 时,它会被添加,如下所示,带有 ISODate 包装器。

但是当我使用 joda-time 将日期格式化为 ISO 并通过 monger(Clojure Mongo Driver) 添加它时,它被添加为

ISO 格式是正确的,但它周围没有 ISODate 包装器,mongo 出于某种原因不尊重它。Mongo TTL 在第二种情况下不起作用。

如何在 clojure 或使用 monger 中添加 ISODate 包装器?

谢谢

0 投票
2 回答
376 浏览

mongodb - 聚合不适用于 mongodb 3.6 版的 monger

Mongo 聚合框架在 3.6 版本中有一些变化 即使我们将:cursor {}作为选项传递,使用 monger 的早期聚合查询也不起作用。是否有任何解决方法,或者我们必须等待下一个贩售者发布?我们得到的错误在下面指定

MongoCommandException 命令失败,出现错误 9:服务器 localhost:27017 上的“需要'cursor'选项,带有解释参数的聚合除外”。完整的响应是 { "ok" : 0.0, "errmsg" : "'cursor' 选项是必需的,除了带有解释参数的聚合", "code" : 9, "codeName" : "FailedToParse" } com.mongodb .connection.ProtocolHelper.getCommandFailureException (ProtocolHelper.java:115)