MongoDB实体(如数据库、集合、字段名)是否有一组首选的命名约定?
我是这么想的:
保持简短:优化小对象的存储, SERVER-863。这很傻,但却是事实。
我想,适用于关系数据库的规则在这里也应该适用。几十年过去了,RDBMS表是单数还是复数还没有达成一致。
MongoDB使用JavaScript,所以使用camelCase的JS命名约定。
MongoDB官方文档提到你可以使用下划线,并且内置标识符名为_id(但这可能是为了表明_id是私有的,内部的,永远不会显示或编辑。
_id
我认为这完全是个人喜好。我的偏好来自于使用NHibernate,在。net中,与SQL Server,所以他们可能与其他人使用的不同。
老实说,这并不太重要,只要它与项目一致即可。去工作吧,不要为细节烦恼
根据用例的不同,字段名对存储有很大的影响。不能理解为什么这不是MongoDb的优先级更高,因为这将对所有用户产生积极影响。如果没有其他的,我们可以开始对我们的字段名进行更多的描述,而不需要考虑带宽和放大器;存储成本。
请做投票。
即使没有指定这方面的约定,手动引用始终以Mongo文档中引用的集合命名,用于一对一的关系。该名称始终遵循结构<document>_id。
<document>_id
例如,在dogs集合中,文档将手动引用命名如下的外部文档:
dogs
{ name: 'fido', owner_id: '5358e4249611f4a65e3068ab', race_id: '5358ee549611f4a65e3068ac', colour: 'yellow' ... }
这遵循Mongo的约定,将_id命名为每个文档的标识符。
收藏命名规范
为了命名一个集合,需要采取一些预防措施:
在创建数据库名称时要记住的事情是:
获取更多信息。请检查下面的链接:http://www.tutorial-points.com/2016/03/schema-design-and-naming-conventions-in.html
数据库
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集合名称是大小写敏感的。
复数:将某物的集合标记为复数更明显,例如“;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文档。