问题标签 [reactivemongo]

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 投票
1 回答
600 浏览

mongodb - 玩!框架控制器在添加 reactivemongo 插件后返回 EMPTY RESPONSE

我对 reactivemongo 和 Play 框架很陌生。当添加 MongoDB 连接的时间到来时,我正在开发一个 Play 应用程序。我决定使用 reactiveMongo 并根据此处的教程制作所有内容: https ://github.com/sgodbillon/reactivemongo-demo-app

我遇到的问题是,在添加插件并对其进行配置后,我开始从应用程序接收空响应(ERR_EMPTY_RESPONSE)。一旦我删除了插件并进行了初始化,我就会再次开始接收带有 HTML 文本的正确 Web 应用程序响应。

这是构建文件:

plugins 配置文件是典型的,只有一行:

这是我在启动和页面打开期间的控制台输出:

这种行为的原因可能是什么?

0 投票
1 回答
469 浏览

scala - 如何使用 reactivemongo 覆盖 Play Framework 中的 gridfs 文件?

我有以下代码来编写 gridfs 文件:

该代码工作正常,但是当我编写两个同名文件时,它会复制集合中的文件。我想使用文件名字段创建一个唯一索引,但这会保留第一个文件,我需要保留最新版本。我该怎么做?

谢谢,

遗传算法

0 投票
1 回答
255 浏览

mongodb - 存储/获取从 Mongo/RectiveMongo 列表中引用的值的最佳方法?

我有一个很常见的用例——评论列表。每条评论都有一个作者。

我使用引用将评论中的引用存储给作者,因为作者可以发表多个评论。

现在我正在使用 ReactiveMongo 并想尝试保持数据库访问异步,但在这种情况下,我不知道如何。我对数据库进行异步访问以获取评论,但是对于每条评论我都必须获取作者,直到现在我知道的唯一方法是遍历评论并同步获取用户:

除此之外,我可以:

  • 异步获取每个用户,但是我必须引入一些功能来等到所有用户都被获取,以便返回响应,我的代码可能会变得一团糟。

  • 存储完整的用户对象 - 至少我需要在每个评论中的评论(图片、名称等)。这种冗余可能会变得难以管理,因为每次用户更改某些内容(与评论中存储的数据相关)时,我都必须浏览数据库中的所有评论并对其进行修改。

在这里应用的正确模式是什么?

0 投票
1 回答
1705 浏览

mongodb - 使用 JsObject 在 Reactivemongo 中计数

我正在尝试在查询上实现 Count 但我遇到了问题,因为我不使用 BSONDocument 而是使用 JsObject 对象。

https://github.com/ReactiveMongo/ReactiveMongo/blob/master/driver/samples/SimpleUseCasesSample.scala

我应该将我的 JsObject 翻译成 BSONDocument 还是有更好的方法?你会如何在 ReactiveMongo 0.9 中做到这一点?

0 投票
1 回答
228 浏览

playframework - Play2 中的异步输入验证器

我正在使用 play2.1,我需要一个验证器来检查给定名称是否已在 MongoDB 中使用。我正在使用响应式 mongo,它是一个异步 MongoDB 驱动程序,尽管我的问题不依赖于这个库。

一般来说,我想知道在 play framework 和 scala 中使用异步验证的推荐方法是什么?

这是我的代码,我认为这不是解决异步验证的优雅方法:

使用 Reads[T] 验证 JsValue 时的相同模式

这段代码有效,但看起来并不优雅/粗俗。解决上述情况的任何替代方法。

0 投票
2 回答
3675 浏览

mongodb - Akka 和 ReactiveMongo

我正在尝试找到在参与者与集群工作人员之间共享相同连接池的最佳方法。我有以下结构:

Master Actor -> Worker Actors(最多 100 个或更多)-> MongoDB

在工作人员和 MongoDB 之间,我想放置响应式mongo,但是我不确定如何在所有参与者之间提供连接池共享。

根据reactivemongo文档:

MongoDriver 实例管理一个actor系统;一个连接管理一个连接池。一般来说, MongoDriver 或创建 MongoConnection 永远不会被实例化超过一次。您可以提供一个或多个服务器的列表;驱动程序会猜测它是独立服务器还是副本集配置。即使只有一个副本节点,驱动程序也会探测其他节点并自动添加它们。

我应该只在主演员中创建它,然后与每条消息捆绑在一起吗?所以,这将在 Master actor 中:

然后我在消息中将连接传递给演员。或者我应该查询每个工作参与者中的连接并在消息中只传递驱动程序?

非常感谢任何帮助。谢谢。

0 投票
1 回答
431 浏览

mongodb - BSONDocument.getAs 问题

使用 BSONDocument getAs 时我有 1 个问题和 1 个问题。

每当我尝试通过调用以下格式访问值 l 时:

它返回无。但是,如果我这样做:

它为整个 v 部分返回一个有效的 BSONDocument。我第一次打电话有什么问题?reactivemongo 是否支持路径遍历?

第二个问题是:我在 DB 中找到了一个带有以下过滤器的文档:

但似乎不是只提取这些值“_id”和“l”,而是提取整个文档。当我执行 BSONDocument.pretty(foundDoc) 时,我会看到整个文档,而不仅仅是我请求的“l”值。如果它总是下载整个文档,请澄清是否值得指定我感兴趣的字段。

谢谢。

0 投票
2 回答
971 浏览

mongodb - 使用specs2玩!使用 Reactivemongo 的虚假应用程序导致超时

我们目前正在解决一个问题,我们在 scala 中使用 specs2 与 mongodb/reactivemongo + Play!。

当我们运行写入 mongodb 的测试时,第一个操作运行良好,所有后续测试/写入都因 mongodb 超时而失败。

我们在这里的响应式 mongo 站点上发现了似乎已经记录在案的错误: https ://github.com/ReactiveMongo/Play-ReactiveMongo/issues/32

有谁知道这个问题的解决方法?

我们已经尝试过:

  • 强制测试按顺序运行
  • 每个测试都在自己的假应用程序中运行
  • 在同一个假应用程序中运行所有测试
  • 将集合定义为 def(如上述问题 32 中所建议的)

任何帮助是极大的赞赏!

0 投票
1 回答
1362 浏览

mongodb - Play2 & ReactiveMongo 测试问题:测试失败后立即连接数据库

我正在实现一个文件存储服务,它获取一个文件并将其保存到具有特殊元数据的 gridFS 中。当然,我想确保一切都在集成中工作——文件确实存储在数据库中,然后从中检索。

我使用 Play Framework 2.1.3 Scala 和 ReactiveMongo 0.9。

我的测试用例如下所示:

我试图用running,或所有案例,甚至Thread.sleep. 但是测试失败数据库总是启动。

我究竟做错了什么?你如何测试 ReactiveMongo 应用程序?

0 投票
1 回答
824 浏览

json - reactivemongo - 合并两个 BSONDocuments

我正在寻找合并两个 BSON 文档的最有效和最简单的方法。如果发生冲突,我已经有处理程序,例如,如果两个文档都包含整数,我将总结,如果也是一个字符串,如果数组则将添加另一个的元素,等等。

然而,由于 BSONDocument 不可变的性质,几乎不可能用它做某事。什么是最简单和最快的合并方式?

例如,我需要合并以下内容:

最终文件将是:

BSONDocument.add 中有一个方法,但是它不检查唯一性,这意味着我最后会有 2 个 BSON 文档,其中“2013”​​作为根键,等等。

谢谢!