问题标签 [salat]
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.
scala - Salat:如何调试堆栈跟踪以了解案例类中的哪个字段导致异常
我在我的 Scala / Scalatra 项目中使用 Salat 来序列化 MongoDB 对象。这是一个普遍的问题,因为我试图从我的数据库中提取一个复杂的 MongoDB 对象,该对象嵌入了我为其创建案例类的不同哈希和数组。我可以逐个字段地注释掉并找出案例类中的哪些内容被破坏,但这只是调试它的一种荒谬方式。我得到的堆栈跟踪如下所示:
我的案例类的一个示例如下所示:
我从案例类开始逐个字段地注释掉它,MLBPlayByPlay
并让 API 响应得很好。最终,当我取消注释时,play_by_play_seqs: Seq[MLBPlayByPlaySeq]
一切都爆炸了。现在我必须进入 MLBPlayByPlaySeq 案例类,它嵌入了自己的案例类类型并开始在那里一一注释掉......肯定有一种更简单的方法来调试 Salat?这就是我使用刨丝器的方式:
实际的例外:
Option[Seq[T]]
我从字段中删除后不久将更新线程。
** 更新 2 **
从我的案例类中删除所有内容后Option[Seq[T]]
,我将问题缩小到我的数据库中的案例类何时next_batter
为空哈希。MLBPlayByPlaySeqs
我将定义从next_batter: Option[MLBBatter] = None
(这将导致它在空哈希上爆炸)更改为next_batter: Map[String, Any] = Map.empty
并且它可以工作。这里的问题是:
- 我使用地图失去了类型安全性
- 我不能再手动选择我想要在我的序列化 JSON 输出中列出的属性。嵌入式哈希的 created_at 和 updated_at 之类的东西出现在我的 JSON 中,这些是我在案例类中明确遗漏的东西,我无法通过更改
next_batter
为 Map 与案例类来做到这一点。
indexing - 使用 Salat DAO 确保 MongoDB 的索引
有一篇db.collection.ensureIndex({someField : 1})
关于使用 Salat 的复合键的帖子,但缺少有关确保索引(来自 mongo-db 控制台)的信息。查看 Salat 源,我没有看到将字段标记为需要索引的注释,有没有办法做到这一点?
json - Scala 无法反序列化 java.util.date 格式
我有一个使用 Salat 的 mongodb 集合的 scala 类。我试图在我的测试用例中将 json 字符串反序列化为对象。但是,它会引发有关日期类型格式的异常。它在使用 Salat DAO 获取对象时运行良好。但是当我测试它时,它给了我一个错误。
mongo 集合的类
测试用例失败:
原因:
mongodb - Scala Salat 反序列化:如何获取 Map[String, Number]?
我的数据库看起来像
当我尝试像这样的查询时
它失败了(在运行时!)
我想我可以通过创建一个唯一字段是 a 的案例类Map[String, Number]
然后获取它的属性来完成这项工作。这真的有必要吗?
mongodb - Salat/Cashbah 的分页解决方案
我对存储在 MongoDB 中的文档的分页解决方案感兴趣。我使用 Salat/Casbah 来处理这些数据。据我所知,就使用这两种解决方案对数据进行分页的开源而言,没有什么现成的。有没有我目前忽略的解决方案,以便使用这些作为我的驱动程序对我在 HTTP API 中显示的数据进行分页?
mongodb - 未写入 MongoDB 的基类属性
使用 Play 2 / Scala 、 casbah 和 Salat
但是,当我使用SalatDAO.save并检查 mongo 数据库时,属性键未存储在 Mongo 数据库对象中。
不确定是什么问题。
先感谢您。
mongodb - 使用 Scala Salat/Casbah 和 Mongodb 插入新记录
问候,
我正在使用 Salat 和 Casbah 在 中创建用户集合Mongodb
,一切正常,直到我在电子邮件字段上添加了唯一索引。现在我的插入返回一个唯一的 id,没有在数据库中为现有电子邮件地址添加任何实际记录。我是 scala 和 Casbah/Salat 的新手,所以如果我问一个明显的问题,我很抱歉。
这是我的收藏索引
这是我的道对象
mongodb - scala salat objectid 在插入数据库后发生变化
我在 scala 中的 Salat 库有问题 - 我有一个案例类项目:
_id 字段是在 Item 实例化时创建的。
我正在尝试测试插入项目的功能,如下所示:
其中 PUT /items/ 映射对应于 Spray HTTP Route:
而saveOrUpdate的定义如下:
现在,问题是断言测试失败
我不知道如果我在保存或更新实体之前设置它,为什么 _id 会改变。
有谁知道为什么它会那样做,我能做些什么来解决这个问题?
最好的,马辛
mongodb - 将 MongoDBObject Query Builder 与 Salat 一起使用
我正在尝试提供一个 API 来根据各种条件搜索 MongoDB 集合,包括全文搜索。由于这是一个 Scala 项目(在 Play FWIW 中),我正在使用Salat ,它是围绕Casbah的抽象。
以下代码工作正常:
但是,我最终需要搜索多个条件并按全文搜索分数对结果进行排序,因此我探索了 Casbah 的 MongoDBObject查询构建器功能(在底部)。
所以我试图像这样复制上面的内容:
这给出了以下异常:
我以前见过这个错误——当我没有score
在查询中包含组件时。但是一旦我这样做了,它就起作用了(如第一个代码片段所示),我认为带有查询构建器的版本是等效的。
就此而言,调用builder.result().toString()
产生这个:
{ "$text" : { "$search" : "Vidya"} , "score" : { "$meta" : "textScore"}}
让查询生成器为我工作的任何帮助将不胜感激。
forms - 使用 Play/Scala 和 MongoDB 提交表单
我目前正在使用 scala (2.11)、Playframework (2.2.3) 和 MongoDB (with Salat) 编写我的第一个应用程序。由于我不太了解它们中的任何一个,所以我遇到了一个初学者问题:我无法从表单提交数据。
我不确定是否有人可以帮助我解决我的确切问题,但也许有人可以指出我正确的方向?
我目前的错误是:
这是我的代码:查看 - users.scala.html:
我的控制器的一部分 - Users.scala:
我对此请求的路线:
最后是我的模型 - User.scala:
在 Play for Scala (Manning) 的帮助下,我基于https://github.com/leon/play-salat尝试了许多不同的变体,以及我在该主题上找到的谷歌链接。在我看来,这是一个非常明显的问题,但正如我所说,我对这些主题很陌生。如果有人能指出我正确的方向,甚至给我发教程或其他东西,那就太好了!谢谢!