是否有一组MongoDB权限的首选命名约定,例如数据库,集合,字段名称?
我正在思考这些问题:
答案 0 :(得分:112)
Keep'em简短:Optimizing Storage of Small Objects,SERVER-863。傻但是真的。
我想几乎适用于关系数据库的规则应该适用于此处。几十年后,仍然没有人同意RDBMS表是否应该被命名为单数或复数......
MongoDB使用JavaScript,因此使用camelCase的JS命名约定。
MongoDB官方文档提到您可以使用下划线,内置标识符也名为_id
(但这可能是为了表明_id
是私有的,内部的,从不显示或编辑。
答案 1 :(得分:38)
<强> DATABASE 强>
MongoDB提供了一个很好的例子:
要选择要使用的数据库,请在mongo shell中发出use&lt; db&gt; 声明,如下例所示:
使用myDB
使用myNewDB
内容来自:https://docs.mongodb.com/manual/core/databases-and-collections/#databases
<强>集合强>
小写名称:避免区分大小写问题,MongoDB集合名称区分大小写。
复数:更明显地将某些东西的集合标记为复数,例如&#34;文件&#34;而不是&#34;文件&#34;
&gt;没有单词分隔符:避免不同的人(错误地)单独的单词(用户名&lt; - &gt; user_name,first_name&lt; - &gt;
名字)。根据少数人的说法,这个问题正在讨论中 在这附近,但提供的参数与集合名称隔离 我不认为它应该是;)如果你发现自己在改善 通过添加下划线或
来集合您的集合名称的可读性 camelCasing您的收藏名称可能太长或应该使用
适当的时期,这是收集的标准 分类更高细节集合的点表示法:为集合的相关性提供一些指示。例如,你可以 合理地确定你可以删除&#34; users.pagevisits&#34;如果你删除了 &#34;用户&#34;,只要设计架构的人员做得很好 工作
内容来自:http://www.tutespace.com/2016/03/schema-design-and-naming-conventions-in.html
对于集合,我会遵循这些建议的模式,直到找到官方的MongoDB文档。
答案 2 :(得分:20)
即使没有为此指定约定,manual references也始终以Mongo文档中引用的集合命名,用于一对一关系。名称始终遵循结构<document>_id
。
例如,在dogs
集合中,文档将手动引用外部文档,如下所示:
{
name: 'fido',
owner_id: '5358e4249611f4a65e3068ab',
race_id: '5358ee549611f4a65e3068ac',
colour: 'yellow'
...
}
遵循Mongo惯例,为每个文档命名_id
标识符。
答案 3 :(得分:6)
收集的命名约定
为了给收集品命名,我们采取一些预防措施:
最好不要在集合名称中包含字符“$”,因为可用于数据库的各种驱动程序不支持集合名称中的“$”。
创建数据库名称时要记住的事项是:
了解更多信息。请查看以下链接:http://www.tutespace.com/2016/03/schema-design-and-naming-conventions-in.html
答案 4 :(得分:2)
我认为这都是个人喜好。我的偏好来自在.NET中使用NHibernate与SQL Server,因此它们可能与其他人使用的不同。
老实说,只要它与项目一致,它就没那么重要了。只是开始工作,不要赘述:P
答案 5 :(得分:2)
在我们得到SERVER-863之前,建议尽可能缩短字段名称 特别是在你有很多记录的地方。
根据您的使用情况,字段名称会对存储产生巨大影响。不明白为什么这不是MongoDb的优先级,因为这会对所有用户产生积极影响。如果不出意外,我们可以开始使用我们的字段名称进行描述,而不必考虑带宽和带宽。存储成本。
请vote。