什么是MongoDB的命名约定?
是否有一组首选的MongoDB实体的命名约定,如数据库,集合,字段名称?
我正在这样思考:
- 数据库:包含目的(以单数forms)并以“db”结尾 – 全部小写:imagedb,resumedb,memberdb等
- 作品集:plural in lower case:图片,简历,
- 文档字段:lowerCamelCase,例如memberFirstName,fileName等
-
Keep'em简称: 优化小对象的存储 , SERVER-863 。 傻,但真实。
-
我想几乎适用于关系数据库的规则应该适用于此。 而在这么多十年之后,RDBMS表格应该被命名为单数还是复数,仍然没有达成一致。
-
MongoDB讲的JavaScript,所以利用JS命名约定。
-
MongoDB官方文档似乎更喜欢下划线,也内置的标识符被命名为
_id
…
即使没有关于此的约定, 手动引用也会在Mongo文档中被引用的集合之后一致地命名,以便进行一对一的关系。 名字总是遵循<document>_id
的结构。
例如,在一个dogs
集合中,一个文档可以手动引用这样的外部文档:
{ name: 'fido', owner_id: '5358e4249611f4a65e3068ab', race_id: '5358ee549611f4a65e3068ac', colour: 'yellow' ... }
这遵循Mongo约定为每个文档命名_id
标识符。
收集的命名约定
为了说明一个集合,要采取一些预防措施:
- 具有空string(“”)的集合不是有效的集合名称。
- 集合名称不应该包含空字符,因为这定义了集合名称的结尾。
- 集合名称不应以“system”作为前缀,因为这是为内部集合保留的。
-
在集合名称中不包含字符“$”是很好的,因为数据库可用的各种驱动程序不支持集合名称中的“$”。
在创build数据库名称时要记住的事项是:
- 具有空string(“”)的数据库不是有效的数据库名称。
- 数据库名称不能超过64个字节。
- 数据库名称区分大小写,即使在不区分大小写的文件系统上也是如此。 因此,小写的名字是很好的。
- 数据库名称不能包含任何这些字符“/,\,。,”,*,<,>,:,|,?,$,“。 它也不能包含单个空格或空字符。
了解更多信息。 请检查以下链接: http : //www.learnit.net.in/2016/03/schema-design-and-naming-conventions-in.html
直到我们得到SERVER-863保持字段名越短越好,特别是在有很多logging的地方。
根据您的使用情况,字段名称可能会对存储产生巨大影响。 不能理解为什么这不是MongoDb的更高优先级,因为这将对所有用户产生积极的影响。 如果没有别的,我们可以开始更多地描述我们的字段名称,而不必考虑带宽和存储成本。
请投票 。
我认为这全是个人喜好。 我的偏好来自使用.NET中的NHibernate和SQL Server,所以它们可能与别人使用的不同。
- 数据库:正在使用的应用程序..例如:Stackoverflow
- 作品集:Singular in name,它将成为一个集合,例如:Question
- 文档字段,例如:MemberFirstName
老实说,只要这个项目是一致的,这并不重要。 刚开始工作,不要泄露细节:P
数据库
- 骆驼香烟盒
- 在名称的末尾添加数据库
- 使单数(集合是复数)
MongoDB提供了一个很好的例子:
要select要使用的数据库,请在mongo shell中发出use语句,如下例所示:
使用myDB
使用myNewDB
内容来自: https : //docs.mongodb.com/manual/core/databases-and-collections/#databases
COLLECTIONS
小写名称:避免大小写敏感问题,MongoDB集合名称区分大小写。
复数:更加明显地将一些东西的集合标记为复数,例如“文件”而不是“文件”
>没有单词分隔符:避免了不同的人(不正确)将单词(用户名< – > user_name,first_name < – >
名字)。 这个是根据less数人辩论的
在这里,但提供的论据是孤立的集合名称,我不认为这应该是)如果你发现自己改善
通过添加下划线或
骆驼你的collections名称可能太长或应该使用
这是收集的标准
分类。更高细节集合的点符号:给出了集合如何相关的一些指示。 例如,如果您删除了“用户”,只要devise架构的人员做得很好,您可以合理确信可以删除“users.pagevisits”。
内容来自: http : //www.learnit.net.in/2016/03/schema-design-and-naming-conventions-in.html
对于集合,我遵循这些build议的模式,直到find正式的MongoDB文档。