问题标签 [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 投票
2 回答
6896 浏览

mongodb - 找不到类型 Option[reactivemongo.bson.BSONObjectID] 的 Json 反序列化器

我得到一个:

当试图反序列化我的评论对象时。

审查:

0 投票
1 回答
4201 浏览

mongodb - 播放 ReactiveMongo - 尝试查找一个文档时出现异常

我已经开始使用PlayPlay-ReactiveMongo插件,并在 GET "document by id" 场景中测试 404 响应。不幸的是,我得到了这个异常,而不是 Play 返回 404 NotFound 响应:

如果 id 参数与现有文档匹配,则下面的 getById 函数成功返回单个文档,但如果找不到文档,则“one [JsValue]”行上的异常。

路线文件:

控制器对象:

也许我错过了文档中的某些内容?

这里记录了部分示例:

https://github.com/sgodbillon/reactivemongo-demo-app#simple-query

mandubian Coast-to-coast 示例也处理 BadRequest 以及 NotFound 场景,但代码可能已过时,因为它不使用较新的 find(...).one[...] 语义?

http://mandubian.com/2013/01/13/JSON-Coast-to-Coast/#action-get

0 投票
1 回答
1329 浏览

playframework - 如何在 Play 2.1 App 启动时克服 [warn]...PrimaryUnavailableException?

我是 Play/Scala/ReactiveMongo 堆栈的新手,正在努力理解我在日志中看到的 [警告],看看我是否能弄清楚如何解决它或让它消失。问题在于在 replset 上使用 ReactiveMongo。出于某种原因,在应用程序启动时,驱动程序会记录以下令人不安的 [警告]...

使用 Mongo shell 检查 replSet 本身并没有发现问题,并且应用程序运行良好。我相当肯定这些例外是“误报”。

我的 conf/application.conf 就像

appDependency 是

有一个 conf/play.plugins 文件

该应用程序本身从启动开始运行良好,读取和写入 Mongo 文档没有问题。这就是为什么我断言早期 [警告] 是“误报”。这个警告正常吗?我能做些什么让它消失吗?

0 投票
1 回答
2376 浏览

mongodb - 带有 Play 2 框架的 ReactiveMongo 说“整个节点集无法访问”

我正在尝试在应用程序的测试服务器上使用带有 ReactiveMongo (0.9) 的 Play (2.1) 应用程序。但是,当我们的应用程序在我的开发盒上运行时,能够很好地存储图像元数据,甚至指向 mongo 测试服务器上安装的 mongo 2.2。甚至用“play stage”运行,然后直接用java 1.6.0运行。但是,以同样的方式运行,同样在测试服务器上使用 Java 1.6.0,应用程序会不断记录此错误:

rcaMongoDBSystem - 整个节点集不可达,是网络问题吗?rcaMongoDBSystem - 整个节点集不可达,是网络问题吗?rcaMongoDBSystem - 整个节点集不可达,是网络问题吗?

而不仅仅是在初始化期间......它无限期地重复。我在其他地方看到过这个错误,但我认为这些解决方案不适用于此。从应用程序的测试服务器,我能够成功地远程登录到 mongo 测试服务器上的端口 27017。我看到我的本地安装和应用程序日志的测试服务器安装都使用相同的 mongodb url。

所以根据我所说的,我相信我可以消除:

  • 阻塞的端口
  • Mongo服务器宕机
  • 指向错误的mongo服务器
  • Mongo 版本不匹配
  • Java 版本不匹配

我正在浏览 reactivemongo 源,但当 MongoChannels 未设置为身份验证或就绪状态(可用)时,似乎会出现错误。我打算尝试远程调试,看看哪里出了问题,但是我的时间不多了,所以我希望能得到一两个故障排除技巧。

谢谢!

0 投票
1 回答
357 浏览

mongodb - 在 Play Framework 2 中使用 Reactivemongo 读取整个集合的奇怪行为

我有以下代码:

当我运行此代码时,播放控制台会显示"name"来自 12 个不同文档的字段mongodb。当我取消注释第二个 Logger 调用时,系统只打印一个名称并停止。该字段"area"存在于数据库中,没有问题。

难道我做错了什么?

0 投票
1 回答
1299 浏览

json - 播放 2.1 和 reactivemongo 0.8 计数文档

我有使用MongoDBvia的 Play 2.1 应用程序Reactivemongo 0.8 plugin。在我的应用程序中,我使用此处描述的 方法而不使用模型

我有从 mongodb 返回所有文档的方法,其中“类型”等于函数 getTypeAll 中的 getType 参数,例如{"type": "computer"},它工作正常。

toType 写成val toType = OWrites[String]{ s => Json.obj("type" -> s) }val 集合定义为lazy val collection = db("mycollection")

问题是我无法编写方法来获取“类型”等于相同参数的文档计数。

并将其作为 json 格式返回,例如 {"typecount": 45}

我正在查看我找到的每个示例,但没有成功。我认为我想要的是val c = collection.find[JsValue](q).count()

但它给出了错误说法value size is not a member of reactivemongo.api.DefaultCollection

谁能告诉我如何计算元素值等于指定值的所有文档?

0 投票
1 回答
1373 浏览

mongodb - 错误:“找不到参数 readFileReader 的隐式值”尝试使用 GridFS 和 reactivemongo 保存文件

我正在尝试使用以下代码在 Play 2.1 中使用 reactivemongo 保存附件:

我收到以下错误:

找不到参数 readFileReader 的隐式值:reactivemongo.bson.BSONDocumentReader[reactivemongo.api.gridfs.ReadFile[reactivemongo.bson.BSONValue]] [error] val futureResult: Future[ReadFile[BSONValue]] = gridFS.writeFromInputStream(fileToSave,新文件输入流(新文件(文件名)))

我错过了什么?

谢谢,

遗传算法

0 投票
1 回答
398 浏览

mongodb - 使用 Play 和 ReactiveMongo 嵌套期货响应时出现编译器错误

我有一个 mongo 条目,其中一个字段是列表。如果条目不存在,我想添加一个新条目。如果存在,我想将一个新元素附加到列表中。

最后我想向客户端返回一个 Ok,但只有在操作成功完成之后。不是一个严格的要求,但在我看来,这对用户来说是最有意义的。

这就是我目前所拥有的 - 它可以工作,但在更新时它会覆盖旧列表,而不是附加新元素。

为了检查列表是否存在并附加元素/创建一个新列表,我从类似的东西开始(这替换了collection.update前面代码中的块):

但编译器似乎不喜欢这种嵌套:“类型不匹配,预期:Future[Result],实际:Future:[Future[SimpleResult[Nothing]]]”

无论如何我觉得这种方式有点尴尬,必须有更优雅的方式来解决这个问题,但我是 Futures 和 ReactiveMongo 的新手,不知道。我该如何解决?

编辑:我也找到了这篇文章但我认为这是在数据库操作完成之前返回响应,我不希望这样。

0 投票
2 回答
1102 浏览

json - 如何处理我的 json 写入以更新 ReactiveMongo 中的现有对象?

在我当前的 Play2 项目中,我实现了 ReactiveMongo 来存储我的用户对象。

用户:

链接提供者:

如您所见,我已经实现了读取和写入,以便将对象正确存储在 mongoDB 实例中。使用新对象进行插入时,一切都像魅力一样工作,并且对象结构已正确保存并从 mongoDB 检索。

我遇到的问题是弄清楚如何处理更新。所以假设我想像这样更新我的用户对象上的一些值:

然后调用我的更新方法:

更新方法:

DBQueryBuilder.set() 方法:

这将导致此错误:

由于写入说明,在调用DBQueryBuilder.set() 方法(__ \ "_id").write[Option[BSONObjectID]]时也应该序列化_id字段。我们知道更新_id是不允许的,在这种情况下绝对不应该这样做。

所以我的问题是:我应该如何处理这个?我想有一些聪明的 Scala 方式不涉及我编写整个"$set" -> 查询?也许创建一个更好的 DBQueryBuilder?也许定义另一个写入定义?
请给你最好的机会,记住我是一个 Scala 新手,所以要温柔 =) !

0 投票
1 回答
581 浏览

playframework-2.1 - 使用 JSON 格式宏将 _id 转换为 id

我在我的 Play 应用程序中使用了 reactivemongo。我的模型使用属性 id 而不是 _id。如何自动转换对象 ID(_id),以便将其映射到模型的 id 属性。

目前我手动编写格式:

但我只想写:

更新

根据trevor.reznik 的回答,我已经弄清楚了。