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

mongodb - 我可以从 reactivemongo 运行 mongo js 脚本吗

堆栈:Scala 2.11.8、ReactiveMongo 0.11.10、Playframework 2.4.6

我们通过 mongo 脚本管理 mongo 更新脚本,我们手动将其应用于每次更新。我想自动化这个过程并在 Play 中创建这部分启动过程,但似乎唯一的方法是使用 ReactiveMongo DSL 开始在 Scala 中编写脚本。

有没有办法使用 ReactiveMongo 发送 mongo 脚本而不用 ReactiveMongo 术语重写它们?

更新

事实证明,使用 Reactivemongo 是不可能的,我刚刚从 scala 运行脚本

0 投票
1 回答
961 浏览

scala - BSONDocument 到 JsObject 并覆盖 BSONDateTimeFormat

我将 ReactiveMongo 0.11.11 用于 Play 2.5,并希望将 BSONDocument 转换为 JsObject。

对于大多数 BSON 数据类型(String、Int...),默认值完全可以让库完成这项工作。对于 BSON 类型 DateTime ( BSONDateTime),JSON 属性的值没有给我所需的格式。

Date 的 JSON 值是一个 JsObject,$date其值为属性名称和 UNIX 时间戳(以毫秒为单位):

我想要的 JSON 是这样的 Date 的字符串表示形式:

不幸的是,我不知道如何在不重写所有内容或更改库本身的代码的情况下覆盖默认行为。

这就是我认为它发生的地方(源代码):

我的版本必须如下所示:

是否可以覆盖该位?

我创建了一个实验...

我想指出,当我将 BSONDocument 转换为 JsObject 时,BSONDateTime 到 JsValue 的转换应该始终有效,而不仅仅是在我手动选择特定的已知属性时。这意味着我的示例中的属性“某物”可以具有任何名称,也可以出现在子文档中。

顺便说一句:如果你想知道,我通常在我的 Play 项目中使用 BSON 集合,但我认为无论如何在这种情况下它不会有什么不同。

编辑

我试过提供一个Writes[BSONDateTime],但不幸的是它没有被使用,我仍然得到和以前一样的结果。代码:

0 投票
1 回答
488 浏览

scala - Scala 定义一个只接受case类的泛型类

在 Scala 中定义泛型类时,如何确保类型参数“A”必须是案例类?

语境:

我正在尝试定义一个通用的“TypedCollection”包装类来交互响应式mongo JSONCollection,就好像它是一个案例类的集合(类似于关系数据库的Typesafe Slick)。

'A' 必须是一个案例类的原因是它会自动被赋予一个 'unapply' 方法。在创建类型“A”到 JsObject 或 BSONObject 的隐式转换时,在泛型类中使用此方法,以便可以将其存储在 MongoDB 中。IE

0 投票
1 回答
67 浏览

playframework-2.4 - 在 Play 应用程序启动期间没有插入数据(使用 Play 2.4 和 reactivemongo 11.11)

我们将 Play Framework 2.4 与 mongodb 2.6 一起使用。但是由于我们将 reactivemongo 从 迁移0.11.100.11.11-play24,所以出了点问题。

我们在应用程序启动期间将一些数据加载到 mongodb 中。一切看起来都很好,应用程序启动了,日志中没有发生错误,但数据库中没有插入数据

以下是启动应用程序的代码Global.scala

为了注入 reactivemongo,我们决定暂时不使用@Inject(),所以我们current.injector改为使用(根据Reactivemongo 文档)。注意:我们完全删除了 ReactiveMongoPlugin 的所有痕迹,因为它在play-reactivemongo 0.11.11-play24.

在这里我们定义我们的模型并注入 ReactiveMongo :

application.conf中,ReactiveMongoModule 使用此行启用: play.modules.enabled += "play.modules.reactivemongo.ReactiveMongoModule"

应用程序日志:

这是来自 mongodb 的日志:

0 投票
1 回答
521 浏览

json - 没有为类型 reactivemongo.play.json.JSONSerializationPack.type 找到作为 JsObject 的 Json 序列化程序

我正在使用带有反应式 mongoDB 的播放框架 2.5.3。

这是我的控制器,编译时出现以下异常:

它建议为 JSONCollection 编写 Owrites 或 OFormat,它是 reactivemongo.play.json._ 包的一部分,并且应该已经根据我的理解定义了这些。

这是我的 jsonWrapper 类:

表类也有隐含定义的格式,读和写。

我最初使用这个例子开始: https://github.com/jonasanso/play-reactive-mongo-db#master,它有效但是当我尝试使其适应我的需要时(即使用我的 jsonWrapper 类)我得到这个错误,不明白为什么它不起作用。

非常感谢,

彼得·M。

0 投票
1 回答
1830 浏览

mongodb - 如何使用 Play 的 JSON 库在 ReactiveMongo 中计算带有查询的文档?

users让我们考虑一下我有一个具有该age属性的集合。现在我想计算集合中的所有文档,users或者只计算与age属性匹配的文档。所以,我做了以下事情:

问题是会users.count(Json.obj("age" -> age))引发编译错误,因为count响应式 mongo 提供的方法需要 type Option[pack.Document]。知道如何解决这个问题吗?

如果这很重要,我正在使用 Reactive Mongo 版本 0.11.11。

0 投票
0 回答
503 浏览

mongodb - 如何使用reactiveMongo将partialFilterExpression添加到索引并播放

我正在尝试将唯一索引添加到文档的字段中,其中集合具有多种不同类型的文档。我想使用 partialFilterExpression 过滤掉不需要的文档,只将索引应用于我想要的文档。mongo 中的一个例子是:

我想做同样的事情,但使用反应式 mongo,到目前为止,在我的代码中我有:

ReactiveMongo的Index似乎没有办法添加partialFilterExpression?有没有办法以原始格式添加它?

0 投票
1 回答
549 浏览

mongodb - 不推荐使用特征 BSONFormats 中的 BSONObjectIDFormat

我正在使用 Reactive Mongo 0.11.11 版,我想在我的 DAO 中实现一个方法,该方法将所有文档按_id.

这是我的 DAO:

问题是我收到以下错误:

我试图用以下方法替换该count方法:

但后来我得到以下编译错误:

0 投票
1 回答
576 浏览

mongodb - 如何为嵌套和引用的文档创建自定义 BSON 读取器/写入器?

我正在使用play2-reactivemongo版本 0.11.11 和reactivemongo-play-json. 我有以下课程:

该属性profiles表示为包含Profile文档元素(嵌入)的数组。相反,该属性teams表示一个值数组_id。但是,在处理实例时,Player我想处理List实例Team而不是_id值。因此,我认为我需要自己的BSONReaderBSONWriter为此。

我的代码如下所示:

如何设置属性profilesteams?在模型中查询数据库是一种不好的做法,不是吗?但是当只有值时如何设置实例_id

0 投票
0 回答
23 浏览

post - 玩 Reactivemongo 只更新一键

我只想更新具有特定 ID 的文档中的一个键。

我正在使用这段代码来做同样的事情:

我正在使用 curl 发送 POST 请求,如下所示:

curl -H "Content-Type: application/json" -X POST -d '{ "configurations" : "4564frgtretr56" }' http://localhost:9000/risk_analyzer/risk_criterias/1/configurations