MongoDB的命名约定是什么?

MongoDB实体(如数据库、集合、字段名)是否有一组首选的命名约定?

我是这么想的:

  • 数据库:由目的(单数词)组成,以“db”结尾——全部小写:imagedb, resumedb, memberdb等。
  • 集合:小写复数:图像,简历,
  • 文档字段:lowerCamelCase,例如memberFirstName, fileName等
180966 次浏览
  1. 保持简短:优化小对象的存储SERVER-863。这很傻,但却是事实。

  2. 我想,适用于关系数据库的规则在这里也应该适用。几十年过去了,RDBMS表是单数还是复数还没有达成一致。

  3. MongoDB使用JavaScript,所以使用camelCase的JS命名约定。

  4. MongoDB官方文档提到你可以使用下划线,并且内置标识符名为_id(但这可能是为了表明_id是私有的,内部的,永远不会显示或编辑。

我认为这完全是个人喜好。我的偏好来自于使用NHibernate,在。net中,与SQL Server,所以他们可能与其他人使用的不同。

  • 数据库:正在使用的应用程序。例:Stackoverflow
  • 集合:名称上的单数,它将是什么集合,例如:问题
  • 文档字段,例如:MemberFirstName

老实说,这并不太重要,只要它与项目一致即可。去工作吧,不要为细节烦恼

在得到服务器- 863之前,保持字段名尽可能短是可取的 特别是当你有很多记录的时候。

根据用例的不同,字段名对存储有很大的影响。不能理解为什么这不是MongoDb的优先级更高,因为这将对所有用户产生积极影响。如果没有其他的,我们可以开始对我们的字段名进行更多的描述,而不需要考虑带宽和放大器;存储成本。

请做投票

即使没有指定这方面的约定,手动引用始终以Mongo文档中引用的集合命名,用于一对一的关系。该名称始终遵循结构<document>_id

例如,在dogs集合中,文档将手动引用命名如下的外部文档:

{
name: 'fido',
owner_id: '5358e4249611f4a65e3068ab',
race_id: '5358ee549611f4a65e3068ac',
colour: 'yellow'
...
}

这遵循Mongo的约定,将_id命名为每个文档的标识符。

收藏命名规范

为了命名一个集合,需要采取一些预防措施:

  1. 包含空字符串(" ")的集合不是有效的集合名称。
  2. 集合名称不应包含空字符,因为这定义了集合名称的结束。
  3. 集合名称不应以前缀“system”开头。,因为这是为内部集合保留的。
  4. 最好不要在集合名称中包含字符“$”,因为数据库可用的各种驱动程序不支持集合名称中的“$”。

在创建数据库名称时要记住的事情是:

  1. 带有空字符串(" ")的数据库不是有效的数据库名称。
  2. 数据库名称不能超过64字节。
  3. 数据库名称区分大小写,即使在不区分大小写的文件系统上也是如此。因此,最好保持名字小写。
  4. 数据库名称不能包含“/,,.,”,*,<, >,:, |, ?, $,”。它也不能包含单个空格或空字符。

获取更多信息。请检查下面的链接:http://www.tutorial-points.com/2016/03/schema-design-and-naming-conventions-in.html

数据库

  • camelCase
  • 在名称的末尾附加DB
  • 使集合为单数(集合为复数)

MongoDB给出了一个很好的例子:

要选择要使用的数据库,在mongo shell中,发出use <db> 语句,示例如下:

< p > 使用myDB
使用myNewDB < / >强

内容来自:https://docs.mongodb.com/manual/core/databases-and-collections/#databases

集合

  • 小写的名字:避免大小写敏感问题,MongoDB集合名称是大小写敏感的。

  • 复数:将某物的集合标记为复数更明显,例如“;files"而不是“文件”;

  • 无分隔符:避免不同的人(错误地)分离单词(username <->User_name, first_name <->
    .使用实例 firstname)。根据一些人的意见,这是一个值得争论的问题 在这里,但前提是参数与集合名称隔离 我不认为它应该是;)如果你发现你在改进
    通过添加下划线或
    来提高集合名称的可读性 camel大小写集合名称可能太长,或者应该使用
    周期是集合
    的标准 分类。< / p >

  • 点表示法用于更高细节的集合:指示集合如何相关。比如你可以 有理由相信你可以删除“users.pagevisits”;如果你删除了 “用户”,只要设计方案的人做得好 工作。< / p >

内容来自:https://web.archive.org/web/20190313012313/http://www.tutespace.com/2016/03/schema-design-and-naming-conventions-in.html

对于集合,我遵循这些建议的模式,直到我找到官方的MongoDB文档。