问题标签 [mongo-scala-driver]

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 回答
49 浏览

scala - mongo-scala-driver:如何在 Observable 中捕获部分结果和解码错误?

在使用查找操作时,有没有办法将新出现的解码异常和数据捕获为值?

在解码所有检索到的 BSON 时,有些可能具有无效属性,并且无法解码为域对象。

我的想法是:

我注意到,当一个值无法解码时,整个操作都会失败。我在跳跃,我可以以某种方式积累错误和有效数据。

0 投票
0 回答
102 浏览

java - mongo-scala-driver:返回结果的迭代器

我正在使用Mongo Scala Driver从 MongoDb 读取文档。我有以下方法返回Future[List[T]]

问题:

而不是一个列表,有没有办法,这个方法可以返回Iterator[T]Future[Iterator[T]]

该文档提到了关于iterating the results via the subscribe method,但我找不到任何具体的实现或使用此subscribe方法来实现我的用例的示例。

0 投票
2 回答
281 浏览

json - 使用 Scala 语言的 MongoDB

我是 MongoDB 和 Scala 语言的新手

我正在使用scala语言在本地连接mongodb

我正在使用以下依赖项

// https://mvnrepository.com/artifact/org.mongodb.scala/mongo-scala-driver

libraryDependencies += "org.mongodb.scala" %% "mongo-scala-driver" % "4.2.3"

我试过的

上面的代码以以下格式返回数据

我也试过

我也尝试过printResult()方法printHeadResult(),但没有一种方法有效

请帮助提前谢谢

0 投票
0 回答
54 浏览

mongodb - 将 MongoDB 查询转换为 Scala

我正在尝试将以下 MongoDB 查询转换为等效的 Scala

目前我有

然而,$multiply$slice文件都是无效的,因为Document只需要 Seq 的 2 个项目?

我不确定如何创建Document对象以传递给不具有$multiply$floor?等功能的运算符的查询创建者。

0 投票
1 回答
161 浏览

mongodb - 案例类的继承元素没有使用 scala mongo 驱动程序持久化到 mongodb

我想使用 mongo-scala-driver 2.7.0 坚持使用 mongo db。我的案例类看起来有点如下

如您所见,针对应用的元数据可能因应用(App1 和 App2)而异。因此,不可能有一个可供所有应用程序使用的单一元数据案例类。因此,我决定为每个应用程序的元数据创建一个案例类,如上所示,并从父 trait 扩展它们。我试图在此处遵循 scala mongo 驱动程序的文档和此处的另一个 stackoverflow 问题实现此目的。如您所见,我_t在密封特性中放置了一个字段。根据文档,这是必需的,因为它将在将文档解码和编码到 Bson 和从 Bson 编码时用作提示。

这是我的编解码器的外观

我坚持使用简单

保存在 mongo db 中的文档缺少_t field内部元数据对象,根据文档,这是必要的,以便 Mongo Scala Driver 将 bson 转换为正确的元数据案例类,因此当我尝试使用获取文档时

我在错误消息中收到以下内容

Could not decode sealed case class. Missing '_t' field.

但是,如果我将 _t 字段显式添加到元数据对象内的 mongo 中,并使用它应该解码到的类的名称,那么一切正常,并且在 get 操作期间我得到了正确的案例类。我不明白为什么虽然使用 mongo insert ,但_t field没有插入

0 投票
0 回答
56 浏览

mongodb - 如何使用 mongo-scala-driver 在查询中复制此 mongodb 正则表达式?

我可以使用此查询直接查询 mongodb,但是在使用Filters#in{key: {$in: [/faq/]}}时如何复制它?

in("key", Seq("/faq/"))不起作用,因为它作为字符串传递。

0 投票
1 回答
53 浏览

mongodb - mongo-scala-driver 不插入

我大约有这个数据库包装类:

问题是一些插入成功,而其他插入静默失败。

例如,在对象中,此命令成功:

但是,在posts对象中,插入永远不会成功(这里,id字段不是主键,_id键是自动生成的,与id不同):

问题是:为什么对于帖子集合,插入永远不会成功?

我的想法:

  1. 也许 db.getCollection 命令会在某种程度上取消配置其他集合,我需要在 insertOne 命令之前调用 db.getCollection 吗?这是不现实的。
  2. 我以为insertOne成功之前方法就退出了,但是对于groups集合,没有问题。
  3. 我尝试使用此命令执行等待,仍然没有插入帖子:Await.result(collection.insertOne(doc).toFuture, Duration.Inf)
  4. 我发现一些关于需要“订阅”可观察的内容以使冷蒸汽开始运行的内容,但我认为这仅与旧版本有关。

配置:Linux Ubuntu 18.04、Scala 2.12.14、Mongo-Scala-Driver 4.3.1、MongoDB 5.0.2。

期待您的回复。

0 投票
1 回答
125 浏览

mongodb - scala mongodb 文档 getList

我想从给定的 mongodb 文档中获取属性作为 Seq[Int] 。怎么做?getList方法捕获运行时异常,我想了解并修复它。

我尝试了这种编译方式,但出现运行时错误“ Caused by: java.lang.ClassCastException: List element cannot be cast to scala.Int$

一些 sbt 库依赖项:

设置代码:

注释:结果是 Seq[Document] 类型,n 是 Document 类型。

VSCODE 中的 getList 悬停描述: