MongoDB模式设计命名约定

18

所以我有一个叫做

exports.create = function(projectJSON){

 var project = new ProjectModel({
   id : projectJSON.id,
   projectName : projectJSON.projectName ,
   authorName : projectJSON.authorName,
   firstPostDate : projectJSON.firstPostDate

 })
}

上述的多词元素命名约定firstPostDate(驼峰命名法)正确吗,还是应该使用全部小写的_分隔?

我看到其他博客更喜欢使用小写字母。

编辑:

另外,我读到元素应该是单数形式而不是复数形式,例如:

`comment` instead of `comments` for a blog schema design
3个回答

29

我自己使用Google的JSON样式指南,他们建议使用驼峰式命名法,即 firstPostDate。以下是该部分摘录:

属性名称格式

属性名称必须符合以下指南:

  • 属性名称应具有定义明确的语义。
  • 属性名称必须采用驼峰式大小写,ascii 字符串。
  • 第一个字符必须是字母、下划线 (_) 或美元符号 ($) 中的一个。
  • 后续字符可以是字母、数字、下划线或美元符号。
  • 应避免使用保留的 JavaScript 关键字(保留的 JavaScript 关键字列表如下)。

这些指南与命名 JavaScript 标识符的指南相同。这使得 JavaScript 客户端可以使用点表示法访问属性(例如,result.thisIsAnInstanceVariable)。以下是一个具有一个属性的对象示例:

{
  "thisPropertyIsAnIdentifier": "identifier value"
}

如果一个架构中嵌套了许多其他文档,那么第一个字符应该是“_id”,而不仅仅是“id”,对吗?而嵌套文档中的“id”不需要有下划线? - bouncingHippo
@bouncingHippo,无法理解你的意思。Mongo中的所有高级文档都会自动创建_id。我认为你不能重命名它。 - Aravind Yarram
假设“thisPropertyIsAnIdentifier”是一个字符串,在模式设计中,它不应该是“thisPropertyIsAnIdentifier":"字符串”吗? - bouncingHippo
我无法看出区别...你所说的模式是什么意思?Mongo有集合... - Aravind Yarram

6

缩短字段名并非必要。

请参考文档

缩短字段名会降低表达能力,并且对于较大的文档和不重要的文档开销而言,没有提供显著的好处。较短的字段名不会减少索引的大小,因为索引具有预定义的结构。一般情况下,不需要使用短字段名


1

集合的命名规则。

为了给集合命名,需要注意以下几点:

  1. 空字符串 “” 不是有效的集合名称。

  2. 集合名称不应包含 null 字符,因为这定义了集合名称的结尾。

  3. 集合名称不应以前缀 “system.” 开头,因为这是保留给内部集合的。

  4. 最好不要在集合名称中包含字符 $,因为数据库可用的各种驱动程序不支持在集合名称中使用 $

更多信息,请查看链接: http://www.tutespace.com/2016/03/schema-design-and-naming-conventions-in.html


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接