问题标签 [play-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 回答
243 浏览

scala - 使用 ReactiveMongo 的 findAndDelete 的规范实现

使用ReactiveMongo ,使用查询查找单个文档、删除该文档并最终返回它的规范方法是什么。我还在为 Playframework 使用ReactiveMongo 插件。到目前为止,我想出了以下代码段:

关键问题是a)是否LastError包含单个文档和b)如何将其转换为OptionMyModel

0 投票
1 回答
205 浏览

mongodb - 在玩!应用程序基础文档字段不会持久化到 mongo db(反应式 mongo 插件)

我有带有反应式 mongo 插件的 Play 2.3 应用程序。我有基本文件:

和一份具体文件:

因此,当我使用响应式 mongo 插件将其持久化到 mongo db 时,仅保留名称,创建/更新的字段不会。

我的存储库看起来像:

问题是我将有许多从基础文档扩展的文档,并且我不希望每次都初始化这些日期和可能的其他一些字段。有可能做这样的事情吗?

0 投票
2 回答
239 浏览

scala - Scala Play ReactiveMongo - 查询参数的任意列表

我正在尝试支持从 MongoDB 获取文档列表的 REST API 的任意过滤器。例如

  • //example.com/users <- 列出所有
  • //example.com/users?age=30 <- 所有 30 岁的用户
  • //example.com/users?age=30&name=John <- 所有 30 岁并打电话给 John 的用户
  • ...

我正在使用 Play-ReactiveMongo 并仅处理 JSONCollection 对象。

所以在我的路线中,我放了

但是有两个问题,首先我需要一个很长的可选参数列表,然后在我的控制器中我需要对所有参数使用模式匹配来检查它们是否为空,并且构建我用来过滤我的集合的选择器。

我意识到我可以从请求对象中获取完整的查询字符串,即 Map[String, Seq[String]]。但是我不知道检查值是字符串还是其他东西的好方法。

还有另一种更好和惯用的方法来做我想做的事吗?

0 投票
3 回答
690 浏览

scala - 在运行中的 Future[Option[BasicProfile]] 方法上编译错误

我正在使用带有 scala 的安全社交和响应式mongo 库编写一个 play 2.3 应用程序。现在我正在尝试实现 UserService[T] 特征,但我在 updatePasswordInfo 方法上遇到编译错误。这是方法:

这是编译器错误:

怎么了?

0 投票
1 回答
112 浏览

scala - 为什么 Play with ReactiveMongo 报告由于 java.io.NotSerializableException: reactivemongo.bson.BSONObjectID 导致的磁盘写入失败

我正在尝试将SecureSocial与 reactivemongo 结合使用。但是,在缓存用户时我遇到了问题。在开发过程中,每次 Play 决定重新编译文件时,用户都会注销。我认为这是由于以下错误:

我不知道如何解决这个问题。我期望 BSONObjectId 默认是可序列化的,因为它是一个案例类。有什么提示吗?

0 投票
2 回答
1851 浏览

json - Action(parser.json) vs Action.async 错误,并且使用 concurrent.Execution.Implicits 无法在 Play Scala 中初始化类控制器

我正在尝试使用以下方法创建一个向 mongoddb 插入数据的发布请求: 1. sbt 0.13.6 2. play 2.10 3. scala 2.11.2 4. play2-reactivamongo 0.10.2 5. mongodb 2.6.4

通过json发布数据,并为模型创建案例类,并使用JSPath将json转换为实体类。

这是我的示例代码:

我已经看到一些使用 Action.sync 在控制器中处理异步的示例代码,但是当我尝试使用 Action.sync 时,我的 Intellij IDE 检测到错误“无法将 Action.sync 解析为签名”,我试图改变像这样的函数的结果

所以我决定使用 Action(parser.json) ,但是来自 activator play 的问题是告诉我应该在我的代码中使用“import play.api.libs.concurrent.Execution.Implicits._”。但是当我导入库时,出现了一个新错误:

当我尝试重新加载请求时,它显示了另一个错误:

有人对我的问题有任何解决方案吗?

0 投票
1 回答
240 浏览

mongodb - Play + Scala + Reactivemongo + 带有 2 个参数的 Rest Query

我下载了类型安全应用程序“modern-web-template”,它使用 play + scala + reactivemongo 实现了一个 crud 应用程序

我试图添加一个新功能。我希望能够通过像这样调用带有两个参数的 URL

首先我将此路由添加到路由文件

然后我将此方法添加到控制器

我无法返回应该是一个用户的预期结果,而是让集合中的所有用户

0 投票
0 回答
177 浏览

json - 如何使用参数转换json并添加验证

环境:play2.3 with reactivemongo

我阅读了reactivemongo 的coast-to-coast 文章,并且喜欢这篇文章的基础。目前,许多示例仍然超出我的理解范围,但我已经做到了。

作为探索这种方法的一部分,我正在构建一个简单的联系人 REST api。该方法通过 URL 传递一个父 ID,而正文包含其余部分。我坚持三件事。

  1. 如何向字符串添加最小/最大长度等验证规则
  2. 如何使字符串值可选
  3. 如何将参数注入 Json 值
  4. 如何在 Json 结构中添加子部分以获取地址?

有没有更好的方法来实现这一点?

第一部分是转换细节,但我想添加最大长度验证并将一些字段更改为可选。

这是控制器上的 REST 调用。注意需要添加到 Json 中用于存储在 Mongo 中的 parentid 参数。

添加“keepAnd Reads.maxLength(20)”无法编译但许多示例显示它在使用中吗?有没有办法扩展验证功能集并添加我自己的?

更新1:我正在学习 Scala,所以在这一点上我可能忽略或误解了一些关于语言的简单事情。不久前,我对 Play1/Java 更加熟悉。

Update2:我还注意到“PickBranch”调用不区分字符串值或对象。其他人是如何处理的?

0 投票
2 回答
721 浏览

mongodb - 使用 Play-Reactivemongo 插件映射 MongoDB _id?

我正在尝试使用 Play-ReactiveMongo 插件通过 Play 和 Angular 在 MongoDB 中读取/写入简单记录。该插件似乎是一个不错的选择,因为它允许您使用简单的案例类和常规 JSON,而不是在 BSON 和 JSON 之间显式转换。但使用该插件的几个示例似乎并未涵盖如何在同一框架内将 MongoDB 对象 ID 映射到 JSON 或从 JSON 映射。这一切似乎都可以在后台使用大量隐式(对我来说很神奇)读/写,但它们似乎无法处理对象 ID。

我的代码基于 Alex Lashford 的Modern Web Template,与Stephan Godbillion 使用 JSON Read/Writes 的示例非常相似,但 Alex 和 Stephan 都没有显示与 MongoDB 对象 ID 有任何关系。

我的数据记录需要某种唯一 ID,因此我可以获取和更新它们等,使用 MongoDB 提供的 ID 是有意义的,但我似乎无法在 Play ReactiveMongo 中找到一种干净地使用它的方法插入。

有谁知道一个示例,该示例显示了如何将 Play ReactiveMongo 插件与 JSON 集合一起使用,以及以某种方式将对象 ID 映射到 JSON 或从 JSON 映射,而无需将我的所有处理转换为使用 BSON?

0 投票
2 回答
847 浏览

mongodb - Reactivemongo TTL 集合

我知道我可以在 MongoDB 中设置 TTL

我知道我可以确保在 Reactivemongo 中使用 Scala 建立索引

但是如何从代码中在反应蒙戈中设置 TTL 集合?或者有没有其他方法可以在 Scala 中使用 reactivemongo 在 Mongo 中制作过期记录?