问题标签 [casbah]

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

scala - 使用 Scalatra 和 Casbah 的 CRUD 操作

我正在学习 Scala 和 MongoDB,我正在使用 Scalatra 和 Casbah 作为简单 Web 应用程序的框架。

它是一个简单的留言板,打算在 Casbah 中学习 CRUD 操作。问题是我发现当我列出消息时,我无法在网站上唯一地引用 MongoDB 中的记录。

我当前的代码如下。

我遇到的问题是不能将 ObjectID 转换为字符串。但是如果没有每行的唯一 ID,我就无法从网页中提供删除功能。

有没有使用 Casbah 处理这些事情的标准方法?我见过的所有教程都忽略了从网页中唯一地访问记录或完全忽略了 scalatra,而只专注于处理来自 scala 代码的记录。

indexController.scala

索引.scaml

0 投票
2 回答
1508 浏览

scala - 使用 Casbah / Salat 定义自定义序列化 - 或将序列化委托给成员?

我正在为一个来自 Rails 的新项目学习 Scala。我已经定义了一个将在我的许多模型中使用的类型,基本上可以将其视为“属性”的集合。它基本上只是一个 hashmap 的包装器,将它的大部分职责委托给它:

所以我会用 a 定义一个模型类Description,比如:

但是,当我坚持Person使用 SalatDAO 时,我最终会得到一个如下所示的文档:

实际上我不需要在attributes标签中嵌套description标签 - 我真正想要的是:

我没有尝试过,但我认为如果我Description扩展 aMap而不是包含一个,我可以让它工作,但我宁愿不这样做,因为 aDescription不是 的类型Map,它具有一些行为aMap以及它自己的其他行为,我稍后会添加。组合优于继承等等。

所以我的问题是,我如何告诉 Salat(或 Casbah,实际上我有点不清楚是哪个在进行转换,因为我才刚刚开始使用它们)如何序列化和反序列化Description类?在这里的 casbah 教程中说:

也可以创建自己的自定义类型序列化器和反序列化器。请参阅自定义序列化器和反序列化器。

但是这个页面似乎不存在。还是我走错了路?实际上有没有一种非常简单的方法来表明这是我想要发生的事情,注释或其他东西?或者我可以以某种方式简单地将序列化委托给属性映射吗?

编辑:在查看了 JodaTime 转换助手的源代码后,我尝试了以下方法,但还没有让它工作:

当我调用RegisterCustomConversionHelpers()然后保存时,Person我没有收到任何错误,它只是没有效果,以与以往相同的方式保存文档。对于我想要的东西,这似乎也有很多事情要做。

0 投票
2 回答
1201 浏览

scala - 如何使用 Scala 中 mongoexport 导出的日期解析 json?

鉴于此代码示例:

我收到此错误:java.lang.ClassCastException: java.lang.Long 无法转换为 java.lang.String

我该怎么做才能在 Scala 中使用 Casbah 正确解析它?

0 投票
1 回答
355 浏览

scala - 有效更新光标列表并插入 Casbah 中的集合

我正在查询一个集合,我想更新结果。

我想更新一个字段并让其余字段保持不变。

我有“filename”和“projectId”作为键的条目

在这种情况下,我正在做:

然而,这很慢。如何以更有效的方式更新对象列表?

谢谢!

0 投票
1 回答
700 浏览

scala - Salat 错误:SalatDAO 所需的类文件丢失。com.mongodb.casbah.TypeImports 的引用类型 MongoCollection 引用不存在的符号

当我尝试扩展 SalatDAO 或使用 grater[T].asObject(x) 时出现以下错误:

SalatDAO 所需的类文件丢失。com.mongodb.casbah.TypeImports 的引用类型 MongoCollection 引用不存在的符号。

我遵循了 Salat 示例,但由于某种原因,扩展 SalatDAO 和 graters asObject 对我不起作用。我在网上找不到有关此错误的任何参考。

这是我的代码:

我非常感谢您对此的任何帮助或建议。我是 Scala 和 Mongodb 的新手。

我正在使用 sbt compile 进行编译。这是我的 build.sbt

0 投票
1 回答
600 浏览

sql - 批处理查询的等效 Mongodb 习惯用法

批量查询mongo集合的最有效方法是什么?例如在 SQL 中,我会做类似的事情:

我发现我可以做一些这里概述的事情

但是关于跳过的大警告让我认为我不应该使用它。(假设集合足够大,足以影响它)。

除了自动生成的 _id 字段外,我的收藏没有任何索引。我不确定是否有办法使用它和 $gt $lt.

如果这很重要,我将使用 Casbah 驱动程序,以防内置秘密酱汁。

0 投票
1 回答
1293 浏览

scala - 使用 Scala/Cas​​bah 从 MongoDB DBObject 中提取值

我想从 Casbah 的 MongoCollectionBase.find(...) 返回的 DBObject 中提取某个键的值,在这种情况下为“orderItems”。我有解决方案,但我不满意。我发现我的解决方案很麻烦。它在每一步都将从 DBObject.toMap 返回的 java.util.Map 转换为 Scala Map 或其他集合。更好的方法是什么?谢谢

删除了细节的 2 行样本数据保留在 MongoDB 中,

0 投票
2 回答
1621 浏览

scala - 使用 Casbah/Scala 在 MongoDB 上执行自定义函数

我已经使用它的命令行客户端在 MongoDB 中定义了一个函数。

我想知道如何使用 Scala 的 casbah 执行自定义 MongoDB 函数。

有什么建议吗?

谢谢,

0 投票
1 回答
372 浏览

scala - 无法编译基本的 Casbah 3.0 程序

我的项目使用以下 jars:scala-library (2.9.2)、mongo-java-driver (2.7.3)、scalaj-collection (2.9.1-1.2)、casbah (util、commons、core、query、gridfs) 2.9.1-3.0.0-M2、joda-time 2.1 和 joda convert 1.2

当我输入以下 hello-worldish 代码时:

我收到一个错误:“未找到:值 MongoConnection”。如果我明确表示,错误就会消失

但我认为Imports._应该照顾好这个。我可能做错了什么?

0 投票
1 回答
312 浏览

scala - Casbah Scala MongoDB 驱动程序 - 一个奇怪的错误

我正在尝试使用 Casbah,一开始我在这一行遇到了一个奇怪的错误:

MongoConenction 上的错误说:

MongoConnection 所需的类文件丢失。com.mongodb 包的引用类型 MongoOptions 引用不存在的符号。

我不知道该怎么办。我附加到我的项目的罐子是:

这看起来像是 Casbah 的完整设置,我不明白它可能渴望什么。所以有第一个问题 - 我必须做些什么来解决这个问题?

第二个问题是 - Casbah教程说我可以只导入一件事,然后获取mongoConn()方法,这也不是事实。如果我按照说明进行操作,mongoConn()根本找不到。那么,我怎样才能让每个人都能像教程中那样工作呢?