MongoDB实体(如数据库、集合、字段名)是否有一组首选的命名约定?
我是这么想的:
数据库:由目的(单数词)组成,以“db”结尾——全部小写:imagedb, resumedb, memberdb等。 集合:小写复数:图像,简历, 文档字段:lowerCamelCase,例如memberFirstName, fileName等
MongoDB实体(如数据库、集合、字段名)是否有一组首选的命名约定?
我是这么想的:
数据库:由目的(单数词)组成,以“db”结尾——全部小写:imagedb, resumedb, memberdb等。 集合:小写复数:图像,简历, 文档字段:lowerCamelCase,例如memberFirstName, fileName等
Keep'em short: Optimizing Storage of Small Objects, SERVER-863. Silly but true. I guess pretty much the same rules that apply to relation databases should apply here. And after so many decades there is still no agreement whether RDBMS tables should be named singular or plural... MongoDB speaks JavaScript, so utilize JS naming conventions of camelCase. MongoDB official documentation mentions you may use underscores, also built-in identifier is named _id (but this may be be to indicate that _id is intended to be private, internal, never displayed or edited.
我认为这完全是个人喜好。我的偏好来自于使用NHibernate,在。net中,与SQL Server,所以他们可能与其他人使用的不同。
数据库:正在使用的应用程序。例:Stackoverflow 集合:名称上的单数,它将是什么集合,例如:问题 文档字段,例如:MemberFirstName
老实说,这并不太重要,只要它与项目一致即可。去工作吧,不要为细节烦恼
在获得SERVER-863之前,建议保持字段名尽可能短 尤其是你有很多记录。
根据用例的不同,字段名对存储有很大的影响。不能理解为什么这不是MongoDb的优先级更高,因为这将对所有用户产生积极影响。如果没有别的,我们可以开始对字段名进行更详细的描述,而不必考虑带宽和存储成本。
请一定投票。
即使没有指定这方面的约定,对于一对一的关系,手动引用始终按照Mongo文档中引用的集合命名。名称始终遵循<document>_id结构。
例如,在dogs集合中,文档会手动引用外部文档,命名如下:
{
name: 'fido',
owner_id: '5358e4249611f4a65e3068ab',
race_id: '5358ee549611f4a65e3068ac',
colour: 'yellow'
...
}
这遵循Mongo的约定,为每个文档命名_id标识符。
收藏命名规范
为了命名一个集合,需要采取一些预防措施:
包含空字符串(" ")的集合不是有效的集合名称。 集合名称不应包含空字符,因为这定义了集合名称的结束。 集合名称不应以前缀“system”开头。,因为这是为内部集合保留的。 最好不要在集合名称中包含字符“$”,因为数据库可用的各种驱动程序不支持集合名称中的“$”。
在创建数据库名称时要记住的事情是:
带有空字符串(" ")的数据库不是有效的数据库名称。 数据库名称不能超过64字节。 数据库名称区分大小写,即使在不区分大小写的文件系统上也是如此。因此,最好保持名字小写。 数据库名称不能包含" /,,.,",*,<,>,:,|,?,$,"。它也不能包含单个空格或空字符。
获取更多信息。请查看以下链接:http://www.tutorial-points.com/2016/03/schema-design-and-naming-conventions-in.html
数据库
camelCase 在名称的末尾附加DB 使集合为单数(集合为复数)
MongoDB给出了一个很好的例子:
要选择要使用的数据库,在mongo shell中,发出use <db> 语句,如下例所示: 使用myDB 使用myNewDB
内容来自:https://docs.mongodb.com/manual/core/databases-and-collections/#databases
集合
Lowercase names: avoids case sensitivity issues, MongoDB collection names are case sensitive. Plural: more obvious to label a collection of something as the plural, e.g. "files" rather than "file" >No word separators: Avoids issues where different people (incorrectly) separate words (username <-> user_name, first_name <-> firstname). This one is up for debate according to a few people around here but provided the argument is isolated to collection names I don't think it should be ;) If you find yourself improving the readability of your collection name by adding underscores or camelCasing your collection name is probably too long or should use periods as appropriate which is the standard for collection categorization. Dot notation for higher detail collections: Gives some indication to how collections are related. For example you can be reasonably sure you could delete "users.pagevisits" if you deleted "users", provided the people that designed the schema did a good job. Content from: https://web.archive.org/web/20190313012313/http://www.tutespace.com/2016/03/schema-design-and-naming-conventions-in.html
对于集合,我遵循这些建议的模式,直到我找到官方的MongoDB文档。