mongodb schema design naming convention
Solution 1
I use Google's JSON Style Guide myself and they suggest using camelCase i.e. firstPostDate. Below is the section excerpt
Property Name Format
Property names must conform to the following guidelines:
- Property names should be meaningful names with defined semantics.
- Property names must be camel-cased, ascii strings.
- The first character must be a letter, an underscore (_) or a dollar sign ($).
- Subsequent characters can be a letter, a digit, an underscore, or a dollar sign.
- Reserved JavaScript keywords should be avoided (A list of reserved JavaScript keywords can be found below).
These guidelines mirror the guidelines for naming JavaScript identifiers. This allows JavaScript clients to access properties using dot notation. (for example, result.thisIsAnInstanceVariable). Here's an example of an object with one property:
{
"thisPropertyIsAnIdentifier": "identifier value"
}
Solution 2
Shortening field names is not necessary.
Check docs:
Shortening field names reduces expressiveness and does not provide considerable benefit for larger documents and where document overhead is not of significant concern. Shorter field names do not reduce the size of indexes, because indexes have a predefined structure. In general it is not necessary to use short field names.
Solution 3
Naming convention for collection.
In order to name a collection few precautions to be taken:
A collection with empty string
“”
is not a valid collection name.A collection name should not contain the null character because this defines the end of collection name.
Collection name should not start with the prefix “system.” as this is reserved for internal collections.
It would be good to not contain the character
$
in the collection name as various driver available for database do not support$
in collection name.
For more information, please check the link: http://www.tutespace.com/2016/03/schema-design-and-naming-conventions-in.html
Related videos on Youtube
Comments
-
bouncingHippo over 1 year
So I have something called
exports.create = function(projectJSON){ var project = new ProjectModel({ id : projectJSON.id, projectName : projectJSON.projectName , authorName : projectJSON.authorName, firstPostDate : projectJSON.firstPostDate }) }
Is the above naming convention for a multi-word element
firstPostDate
(camel case) correct, or should they be spaced with_
in all lowercase?I see that other blogs prefer it to be in small caps..
EDIT:
Also I read that elements should be singular instead of plural ie:
`comment` instead of `comments` for a blog schema design
-
bouncingHippo over 11 yearsso if its just 1 huge schema with lots of other embedded documents, the first character should be
_id
instead of justid
right? and theid
in the embedded documents do not need to have an underscore? -
Aravind Yarram over 11 years@bouncingHippo Unable to understand what you are saying. All high level documents in Mongo has _id automatically created. I doesn't think you can rename it.
-
bouncingHippo over 11 yearslets say
"thisPropertyIsAnIdentifier"
is a string, in the schema design, shouldnt it be"thisPropertyIsAnIdentifier" : "String"
? -
Aravind Yarram over 11 yearsI am unable to see the difference...what do you mean by schema? Mongo has collections...