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

mongodb - 使用reactivemongo更新数组内的嵌套数组

我正在尝试使用 scala 和响应式 mongo 更新嵌套列表中的元素。我试过这个:

结构:

我的代码的问题是它给出了这个结果:firstList.0.secondList.0.thirdList = firstObject 它应该给出例如这个:firstList.0.secondList.0.thirdList.0 = firstObject

我试过这个:

但我收到此错误:MongoDB: Too many positional (ie '$') elements found in path

请提供任何帮助

0 投票
1 回答
189 浏览

mongodb - 使用 ReactiveMongo 和 Play JSON 查询时间字段

我正在尝试使用带有 Play Framework 和 JSON 的 ReactiveMongo 来等效于此查询:

我试过这个:

并运行查询:

这将返回一个空序列。

根据文档,数据/时间字段表示为

带有 $date JsNumber 字段的 JsObject,其中时间戳(毫秒)作为值

但是,这在查询时似乎没有多大帮助。

我正在使用带有 Play Framework 2.5 的 ReactiveMongo 0.12.1

0 投票
1 回答
372 浏览

scala - Scala Play 将请求转换为 JSON 并将其写入 MongoDB

我正在使用 Play 2.5 和 ReactiveMongo。这是一个简单的问题,但我无法弄清楚。我有一个从视图接收username和的控制器password,我想将此请求转换为类型的模型,UserModel然后将此模型转换为 json 并将其写入 MongoDB。

我的控制器:

我的模型:

我的观点:

0 投票
1 回答
274 浏览

scala - 根据成功的价值将成功转化为失败的最佳方法

我用玩!带有 ReactiveMongo 插件的框架(相应的版本 2.3 和 0.11)。我有下一个代码,它从 MongoDB 集合中删除项目并返回一些受影响的项目:

由于 ReactiveMongo 文档,WriteResultcollectionremove()方法返回的类具有诸如hasError和之类的字段,writeErrors用于指示在执行数据库查询期间发生的错误。

WriteResult那么,根据'shasError字段来增强我的方法以从中返回失败的最佳和最干净的方法是什么?

这是一个粗略的例子:

Failure即使数据库查询返回Success带有错误字段的方法,我的方法也应该返回

提前致谢!为了使我的代码更好,我真的很感激任何帮助

PS我考虑过将我所有的代码都包装进去,只是在标志设置为时Try抛出一个异常,但我相信它可以以更好的方式完成,也许使用's方法hasErrortrueFuturetransform()

PPS 由于某些原因,来自 ReactiveMongo文档的代码示例和演示不处理WriteError' 的错误字段和标志。事实上,文件说

如果写入结果确实指示错误,Future 将处于失败状态

但是,我已经在几个应用程序的生产代码中看到了这样的处理,所以它有点令人困惑。是不是意味着这种处理过度了?

0 投票
1 回答
134 浏览

scala - 如何创建查询数据库的自定义写入器/读取器?

我有一堂课Song和一堂课Album。我的目标是拥有两个单独的集合并BSONObjectID在数据库中保留一个引用,但在我的代码中,我想将这些 ID 映射到它们各自的实体。

这是我目前的模型:

我想替换albumIdalbum

这是我目前的模型:

正如文档所述,我必须为此创建一个自定义编写器/阅读器。但是,我的问题是我不知道如何在自定义读取器/写入器中查询数据库以检索所有必要的字段来实例化我的Album实例。这是它应该如何工作的吗?在模型中查询数据库?

0 投票
1 回答
122 浏览

mongodb - 在 PlayFramework、scala、reactivemongo 应用程序中从 MongoDB 中的数据填充 HTML 表单时获取 None.get

我正在学习 ReactiveMongo。在我的应用程序中,我想从 MongoDB 检索数据并将其填写到 HTML 表单中。

早些时候我的问题是代码没有编译。我修复了它,但现在我从数据库中得到 None.get 而不是 value。

我在 MongoDB 中的数据将映射到以下案例类

以下是 Reactive Mongo 所需的读者。

问题1 - 我从 MongoDB 得到 None.get 而不是 value

以下是我的控制器代码。忽略不必要的导入

以下是 HTML

问题2 - @form("name").value 是从表单中提取值的正确方法吗?

0 投票
1 回答
639 浏览

mongodb - 在 play 2.5.X 中使用 reactivemongo 0.12.1 时出错

我尝试使用 play 2.5.12 升级到响应式 mongo 0.12.1,但是当我运行 JVM 时退出我并得到以下堆栈跟踪:

由于 ActorSystem [application] java.lang.NoClassDefFoundError: play/api 启用了“akka.jvm-exit-on-fatal-error”,线程 [application-akka.actor.default-dispatcher-2] 中未捕获的错误正在关闭 JVM /libs/concurrent/StateMachine at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:763) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java .net.URLClassLoader.defineClass(URLClassLoader.java:467) 在 java.net.URLClassLoader.access$100(URLClassLoader.java:73) 在 java.net.URLClassLoader$1.run(URLClassLoader.java:368) 在 java.net。 URLClassLoader$1.run(URLClassLoader.java:362) 在 java.lang.ClassLoader 的 java.net.URLClassLoader.findClass(URLClassLoader.java:361) 的 java.security.AccessController.doPrivileged(Native Method)。loadClass(ClassLoader.java:424) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) at play.api.libs.streams.impl.EnumeratorSubscriptionFactory$class.createSubscription(EnumeratorPublisher.scala:25) at play.api .libs.streams.impl.EnumeratorPublisher.createSubscription(EnumeratorPublisher.scala:33) 在 play.api.libs.streams.impl.EnumeratorPublisher.createSubscription(EnumeratorPublisher.scala:33) 在 play.api.libs.streams.impl.RelaxedPublisher .subscribe(RelaxedPublisher.scala:19) at akka.stream.impl.MaterializerSession.akka$stream$impl$MaterializerSession$$doSubscribe(StreamLayout.scala:1033) at akka.stream.impl.MaterializerSession.assignPort(StreamLayout.scala: 1025)在akka.stream.impl.MaterializerSession$$anonfun$exitScope$2.apply(StreamLayout.scala:907)在akka.stream.impl.MaterializerSession$$anonfun$exitScope$2。apply(StreamLayout.scala:906) at scala.collection.Iterator$class.foreach(Ite​​rator.scala:893) at scala.collection.AbstractIterator.foreach(Ite​​rator.scala:1336) at akka.stream.impl.MaterializerSession.exitScope (StreamLayout.scala:906) 在akka.stream.impl.MaterializerSession$$anonfun$materializeModule$1.apply(StreamLayout.scala:958) 在akka.stream.impl.MaterializerSession$$anonfun$materializeModule$1.apply(StreamLayout.scala :950) at scala.collection.immutable.Set$Set3.foreach(Set.scala:163) at akka.stream.impl.MaterializerSession.materializeModule(StreamLayout.scala:950) at akka.stream.impl.MaterializerSession.materialize( StreamLayout.scala:917) at akka.stream.impl.ActorMaterializerImpl.materialize(ActorMaterializerImpl.scala:256) at akka.stream.impl.ActorMaterializerImpl.materialize(ActorMaterializerImpl.scala:146) atakka.stream。scaladsl.RunnableGraph.run(Flow.scala:350) at akka.stream.scaladsl.Source.runWith(Source.scala:81) at play.core.server.netty.NettyModelConversion.play$core$server$netty$NettyModelConversion$ $createChunkedResponse(NettyModelConversion.scala:256) at play.core.server.netty.NettyModelConversion$$anonfun$convertResult$1.apply(NettyModelConversion.scala:189) at play.core.server.netty.NettyModelConversion$$anonfun$convertResult$1 .apply(NettyModelConversion.scala:166) at play.core.server.common.ServerResultUtils$.resultConversionWithErrorHandling(ServerResultUtils.scala:127) at play.core.server.netty.NettyModelConversion.convertResult(NettyModelConversion.scala:235) .core.server.netty.PlayRequestHandler$$anonfun$play$core$server$netty$PlayRequestHandler$$handleAction$2$$anonfun$apply$3.apply(PlayRequestHandler.scala:273) 在 play.core.server.netty.PlayRequestHandler$$anonfun$play$core$server$netty$PlayRequestHandler$$handleAction$2$$anonfun$apply$3.apply(PlayRequestHandler.scala:267) 在 scala.concurrent.Future $$anonfun$flatMap$1.apply(Future.scala:253) at scala.concurrent.Future$$anonfun$flatMap$1.apply(Future.scala:251) at scala.concurrent.impl.CallbackRunnable.run(Promise.scala :32) 在 play.api.libs.iteratee.Execution$trampoline$.executeScheduled(Execution.scala:110) 在 play.api.libs.iteratee.Execution$trampoline$.execute(Execution.scala:70) 在 scala。 concurrent.impl.CallbackRunnable.executeWithValue(Promise.scala:40) 在 scala.concurrent.impl.Promise$DefaultPromise.tryComplete(Promise.scala:248) 在 scala.concurrent.Promise$class.complete(Promise.scala:55)在 scala.concurrent.impl.Promise$DefaultPromise.complete(Promise.scala:153) 在 scala.concurrent.Future$$anonfun$andThen$1.apply(Future.scala:436) 在 scala.concurrent.Future$$anonfun$andThen$1.apply(Future.scala:435) 在 scala.concurrent.impl .CallbackRunnable.run(Promise.scala:32) at akka.dispatch.BatchingExecutor$AbstractBatch.processBatch(BatchingExecutor.scala:55) atakka.dispatch.BatchingExecutor$BlockableBatch$$anonfun$run$1.apply$mcV$sp(BatchingExecutor .scala:91) 在 akka.dispatch.BatchingExecutor$BlockableBatch$$anonfun$run$1.apply(BatchingExecutor.scala:91) 在 akka.dispatch.BatchingExecutor$BlockableBatch$$anonfun$run$1.apply(BatchingExecutor.scala:91) ) at scala.concurrent.BlockContext$.withBlockContext(BlockContext.scala:72) at akka.dispatch.BatchingExecutor$BlockableBatch.run(BatchingExecutor.scala:90) at akka.dispatch.TaskInvocation.run(AbstractDispatcher.scala:39) at阿卡。dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:415) at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260) at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)在 scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979) 在 scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107) 引起:java.lang.ClassNotFoundException: play.api.libs.concurrent .StateMachineforkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107) 引起:java.lang.ClassNotFoundException: play.api.libs.concurrent.StateMachineforkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107) 引起:java.lang.ClassNotFoundException: play.api.libs.concurrent.StateMachine

任何帮助将不胜感激!

0 投票
1 回答
770 浏览

scala - ReactiveMongoModule 无法实例化

不知道发生了什么,一切都编译得很好,但是当我运行项目时它失败了。我在 build.sbt 中导入了 reactivemongo,并且在我的 application.conf 文件中启用了以下功能。我正在使用播放 2.5.10

这是错误:

0 投票
0 回答
60 浏览

playframework-2.3 - 玩2.3用ReactiveMongo序列化JsObject

我有一个这样的案例类:

如何序列化和反序列化 JsObject?我试图寻找写和读,但还没有找到。有一个插件reactivemongo-play-json但它仅适用于 2.4。

如果没有更好的解决方案,我决定转换为字符串。

0 投票
1 回答
65 浏览

scala - 在 Play 2.5 和 ReactiveMongo 中处理更新失败

我编写了简单的rest API,它将音乐曲目数据添加到mongodb。

我能够成功写入轨道,但是我想处理错误情况。

我的代码如下 -

让我们假设 trackService.save(data) 发生了一些故障,然后我想返回错误代码。我想知道如何实现这一目标。

谢谢帕里