MongoDB 结合 Play Framework (Scala) 的命名约定

Naming convention for MongoDB in combination with Play Framework (Scala)

关于mongoDB,那么一切都清楚了,关于这个主题已经写了很多。使用 javascript 语法(first_name 甚至更好 "fn" 来保存 space)。 但是scala代码中的工作呢(我使用camelCase)。比如我会写这样的hierarchy

case class User (... personalInfo: PersonalInfo, ...)
case class PersonalInfo (... fullName: FullName, ...)
case class FullName (firstName: String, middleName: Option [String], lastName: String)

如果我想简单地使用 mongoDB(即使用 JSON Macro Inception 并且不编写自定义读取器和写入器),我必须像这样更改这些 类

case class User (... p_inf: PersonalInfo, ...)
case class PersonalInfo (... f_nm: FullName, ...)
case class FullName (fn: String, mn: Option [String], ln: String)

但是这段代码对我来说很难看(因为单词的减少,以及整个样式)

val firstName = user.p_inf.f_nm.fn

我要为字段创建另一个常量,然后在 javascript/html 代码中使用(这里适合这种样式),例如

trait JsFields {
val jsFirstName = "p_inf.f_nm.fn"
}

user.scala.html:

import ... JsFields._
<input name="@jsFirstName" />

所以MongoDB和JS/html样式是合适的,但是业务逻辑不合适。 请结合 MongoDB/Play Framework 和 Scala/Html/JS 编写最佳命名实践。请举例说明(例如上面的字段)。

Mongo 3 使用 Wired Tiger 引擎添加压缩,因此您可能不需要或不想再使用晦涩的名称。

https://comerford.cc/2014/11/12/mongodb-2-8-new-wiredtiger-storage-engine-adds-compression/

实际实施的 JIRA 票证: https://jira.mongodb.org/browse/SERVER-164