![Hackolade image](/Project%20Management%20documentation/image1.png?raw=true)
Model name: Project Management
Author: Ali Alaoui
Version:
File name: MongoDB model Project Management.json
File path: D:\Documents\_Dev\Hackolade\Project_3\MongoDB model Project Management.json
Printed On: Sun Apr 11 2021 23:52:57 GMT-0400 (Eastern Daylight Time)
Created with: Hackolade - Visual data modeling for NoSQL and multimodel databases
1.1 Model Project Management
1.1.1 Project Management Entity Relationship Diagram
![Hackolade image](/Project%20Management%20documentation/image2.png?raw=true)
1.1.2 Project Management Properties
Property | Value |
Model name | Project Management |
Technical name | |
Description | |
Author | Ali Alaoui |
Version | |
DB vendor | MongoDB |
DB version | v4.4 |
Comments | |
Lineage | |
1.1.3 Project Management DB Definitions
2.1 Database Project_Management
![Hackolade image](/Project%20Management%20documentation/image3.png?raw=true)
2.1.1 Project_Management Properties
Property | Value |
Database name | Project_Management |
Technical name | |
Activated | true |
Enable sharding | |
Description | |
Comments | |
2.1.2 Project_Management Collections
2.1.2.1 Collection developer
2.1.2.1.1 developer Tree Diagram
![Hackolade image](/Project%20Management%20documentation/image4.png?raw=true)
2.1.2.1.2 developer Properties
Property | Value |
Collection name | developer |
Technical name | |
Activated | true |
Id | |
Description | |
Database | Project_Management |
Capped | |
Size | |
Max | |
Storage engine | WiredTiger |
Config String | |
Validation level | Off |
Validation action | Warn |
Additional properties | |
Comments | |
2.1.2.1.3 developer Fields
2.1.2.1.3.1.1 _id Tree Diagram
![Hackolade image](/Project%20Management%20documentation/image5.png?raw=true)
2.1.2.1.3.1.2 _id properties
Property | Value |
Name | _id |
Technical name | |
Activated | true |
Id | |
Type | objectId |
Description | |
Dependencies | |
Required | true |
Primary key | true |
Foreign collection | |
Foreign field | |
Relationship type | |
Relationship name | |
Cardinality | |
Default | |
Sample | |
Comments | |
2.1.2.1.3.2.1 name Tree Diagram
![Hackolade image](/Project%20Management%20documentation/image6.png?raw=true)
2.1.2.1.3.2.2 name properties
Property | Value |
Name | name |
Technical name | |
Activated | true |
Id | |
Type | string |
Description | |
Dependencies | |
Required | true |
Primary key | |
Foreign collection | |
Foreign field | |
Relationship type | |
Relationship name | |
Cardinality | |
Default | |
Min length | |
Max length | |
Pattern | |
Format | |
Enum | |
Sample | |
Comments | |
2.1.2.1.3.3.1 stacks Tree Diagram
![Hackolade image](/Project%20Management%20documentation/image7.png?raw=true)
2.1.2.1.3.3.2 stacks Hierarchy
Parent field: developer
Child field(s):
Field | Type | Req | Key | Description | Comments |
[0] stack | reference | false | | | |
2.1.2.1.3.3.3 stacks properties
Property | Value |
Name | stacks |
Technical name | |
Activated | true |
Id | |
Type | array |
Description | |
Dependencies | |
Required | |
Primary key | |
Foreign collection | |
Foreign field | |
Relationship type | |
Relationship name | |
Cardinality | |
Min items | |
Max items | |
Unique items | |
Additional items | true |
Comments | |
2.1.2.1.3.4 Field [0] stack
2.1.2.1.3.4.1 [0] stack Tree Diagram
![Hackolade image](/Project%20Management%20documentation/image8.png?raw=true)
2.1.2.1.3.4.2 [0] stack properties
Property | Value |
Name | |
Activated | true |
$ref | #/definitions/New Field |
Reference type | internal |
Reference description | |
2.1.2.1.3.5 Field projects
2.1.2.1.3.5.1 projects Tree Diagram
![Hackolade image](/Project%20Management%20documentation/image9.png?raw=true)
2.1.2.1.3.5.2 projects Hierarchy
Parent field: developer
Child field(s):
Field | Type | Req | Key | Description | Comments |
[0] | document | false | | | |
2.1.2.1.3.5.3 projects properties
Property | Value |
Name | projects |
Technical name | |
Activated | true |
Id | |
Type | array |
Description | |
Dependencies | |
Required | |
Primary key | |
Foreign collection | |
Foreign field | |
Relationship type | |
Relationship name | |
Cardinality | |
Min items | |
Max items | |
Unique items | |
Additional items | true |
Comments | |
2.1.2.1.3.6.1 [0] Tree Diagram
![Hackolade image](/Project%20Management%20documentation/image10.png?raw=true)
2.1.2.1.3.6.2 [0] Hierarchy
Parent field: projects
Child field(s):
2.1.2.1.3.6.3 [0] properties
Property | Value |
Display name | |
Activated | true |
Id | |
Type | document |
Description | |
Dependencies | |
Primary key | |
Foreign collection | |
Foreign field | |
Relationship type | |
Relationship name | |
Cardinality | |
DBRef | |
Min Properties | |
Max Properties | |
Additional properties | |
Comments | |
2.1.2.1.3.7 Field projectname
2.1.2.1.3.7.1 projectname Tree Diagram
![Hackolade image](/Project%20Management%20documentation/image11.png?raw=true)
2.1.2.1.3.7.2 projectname Hierarchy
Parent field: [0]
Child field(s):
Field | Type | Req | Key | Description | Comments |
[0] name | objectId | false | | | |
2.1.2.1.3.7.3 projectname properties
Property | Value |
Name | projectname |
Technical name | |
Activated | true |
Id | |
Type | array |
Description | |
Dependencies | |
Required | |
Primary key | |
Foreign collection | |
Foreign field | |
Relationship type | |
Relationship name | |
Cardinality | |
Min items | |
Max items | |
Unique items | |
Additional items | true |
Comments | |
2.1.2.1.3.8 Field [0] name
2.1.2.1.3.8.1 [0] name Tree Diagram
![Hackolade image](/Project%20Management%20documentation/image12.png?raw=true)
2.1.2.1.3.8.2 [0] name properties
Property | Value |
Display name | name |
Activated | true |
Id | |
Type | objectId |
Description | |
Dependencies | |
Primary key | |
Foreign collection | project |
Foreign field | name |
Relationship type | Foreign Key |
Relationship name | fk project. to developer. |
Cardinality | 1 |
Default | |
Sample | |
Comments | |
2.1.2.1.3.9 Field startdate
2.1.2.1.3.9.1 startdate Tree Diagram
![Hackolade image](/Project%20Management%20documentation/image13.png?raw=true)
2.1.2.1.3.9.2 startdate properties
Property | Value |
Name | startdate |
Technical name | |
Activated | true |
Id | |
Type | date |
Description | |
Dependencies | |
Required | |
Primary key | false |
Foreign collection | project |
Foreign field | startdate |
Relationship type | Foreign Key |
Relationship name | fk project. to developer. |
Cardinality | 1 |
Default | |
Now | |
Sample | |
Comments | |
2.1.2.1.3.10 Field enddate
2.1.2.1.3.10.1 enddate Tree Diagram
![Hackolade image](/Project%20Management%20documentation/image14.png?raw=true)
2.1.2.1.3.10.2 enddate properties
Property | Value |
Name | enddate |
Technical name | |
Activated | true |
Id | |
Type | date |
Description | |
Dependencies | |
Required | |
Primary key | false |
Foreign collection | project |
Foreign field | enddate |
Relationship type | Foreign Key |
Relationship name | fk project. to developer. |
Cardinality | 1 |
Default | |
Now | |
Sample | |
Comments | |
2.1.2.1.4 developer Definitions
2.1.2.1.4.1 Field New Field
2.1.2.1.4.1.1 New Field Tree Diagram
![Hackolade image](/Project%20Management%20documentation/image15.png?raw=true)
2.1.2.1.4.1.2 New Field properties
Property | Value |
Name | New Field |
Technical name | |
Id | |
Type | objectId |
Description | |
Dependencies | |
Required | |
Primary key | |
Foreign collection | |
Foreign field | |
Relationship type | |
Relationship name | |
Cardinality | |
Default | |
Sample | |
Comments | |
2.1.2.1.4.2 Field projectname
2.1.2.1.4.2.1 projectname Tree Diagram
![Hackolade image](/Project%20Management%20documentation/image16.png?raw=true)
2.1.2.1.4.2.2 projectname properties
Property | Value |
Name | projectname |
Technical name | |
Id | |
Type | objectId |
Description | |
Dependencies | |
Required | |
Primary key | |
Foreign collection | |
Foreign field | |
Relationship type | |
Relationship name | |
Cardinality | |
Default | |
Sample | |
Comments | |
2.1.2.1.5 developer JSON Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"title": "developer",
"properties": {
"_id": {
"type": "string",
"pattern": "^[a-fA-F0-9]{24}$"
},
"name": {
"type": "string"
},
"stacks": {
"type": "array",
"additionalItems": true,
"items": {
"$ref": "#/definitions/New Field"
}
},
"projects": {
"type": "array",
"additionalItems": true,
"items": {
"type": "object",
"properties": {
"projectname": {
"type": "array",
"additionalItems": true,
"items": {
"type": "string",
"pattern": "^[a-fA-F0-9]{24}$"
}
},
"startdate": {
"type": "string",
"format": "date-time"
},
"enddate": {
"type": "string",
"format": "date-time"
}
}
}
}
},
"definitions": {
"New Field": {
"type": "string",
"pattern": "^[a-fA-F0-9]{24}$"
},
"projectname": {
"type": "string",
"pattern": "^[a-fA-F0-9]{24}$"
}
},
"required": [
"_id",
"name"
]
}
2.1.2.1.6 developer JSON data
{
"_id": ObjectId("507f1f77bcf86cd799439011"),
"name": "Lorem",
"stacks": [
ObjectId("507f1f77bcf86cd799439011")
],
"projects": [
{
"projectname": [
ObjectId("507f1f77bcf86cd799439011")
],
"startdate": ISODate("2016-04-08T15:06:21.595Z"),
"enddate": ISODate("2016-04-08T15:06:21.595Z")
}
]
}
2.1.2.1.7 developer Target Script
use Project_Management;
db.createCollection("developer", {
"storageEngine": {
"wiredTiger": {}
},
"capped": false,
"validator": {
"$jsonSchema": {
"bsonType": "object",
"title": "developer",
"properties": {
"_id": {
"bsonType": "objectId"
},
"name": {
"bsonType": "string"
},
"stacks": {
"bsonType": "array",
"additionalItems": true,
"items": {
"bsonType": "objectId"
}
},
"projects": {
"bsonType": "array",
"additionalItems": true,
"items": {
"bsonType": "object",
"properties": {
"projectname": {
"bsonType": "array",
"additionalItems": true,
"items": {
"bsonType": "objectId"
}
},
"startdate": {
"bsonType": "date"
},
"enddate": {
"bsonType": "date"
}
}
}
}
},
"required": [
"_id",
"name"
]
}
},
"validationLevel": "off",
"validationAction": "warn"
});
2.1.2.2 Collection project
2.1.2.2.1 project Tree Diagram
![Hackolade image](/Project%20Management%20documentation/image17.png?raw=true)
2.1.2.2.2 project Properties
Property | Value |
Collection name | project |
Technical name | |
Activated | true |
Id | |
Description | |
Database | Project_Management |
Capped | |
Size | |
Max | |
Storage engine | WiredTiger |
Config String | |
Validation level | Off |
Validation action | Warn |
Additional properties | |
Comments | |
2.1.2.2.3.1.1 _id Tree Diagram
![Hackolade image](/Project%20Management%20documentation/image18.png?raw=true)
2.1.2.2.3.1.2 _id properties
Property | Value |
Name | _id |
Technical name | |
Activated | true |
Id | |
Type | objectId |
Description | |
Dependencies | |
Required | true |
Primary key | true |
Foreign collection | |
Foreign field | |
Relationship type | |
Relationship name | |
Cardinality | |
Default | |
Sample | |
Comments | |
2.1.2.2.3.2.1 name Tree Diagram
![Hackolade image](/Project%20Management%20documentation/image19.png?raw=true)
2.1.2.2.3.2.2 name properties
Property | Value |
Name | name |
Technical name | |
Activated | true |
Id | |
Type | string |
Description | |
Dependencies | |
Required | true |
Primary key | |
Foreign collection | |
Foreign field | |
Relationship type | |
Relationship name | |
Cardinality | |
Default | |
Min length | |
Max length | |
Pattern | |
Format | |
Enum | |
Sample | |
Comments | |
2.1.2.2.3.3 Field requiredstack
2.1.2.2.3.3.1 requiredstack Tree Diagram
![Hackolade image](/Project%20Management%20documentation/image20.png?raw=true)
2.1.2.2.3.3.2 requiredstack Hierarchy
Parent field: project
Child field(s):
Field | Type | Req | Key | Description | Comments |
[0] stack | objectId | false | | | |
2.1.2.2.3.3.3 requiredstack properties
Property | Value |
Name | requiredstack |
Technical name | |
Activated | true |
Id | |
Type | array |
Description | |
Dependencies | |
Required | |
Primary key | |
Foreign collection | |
Foreign field | |
Relationship type | |
Relationship name | |
Cardinality | |
Min items | |
Max items | |
Unique items | |
Additional items | true |
Comments | |
2.1.2.2.3.4 Field [0] stack
2.1.2.2.3.4.1 [0] stack Tree Diagram
![Hackolade image](/Project%20Management%20documentation/image21.png?raw=true)
2.1.2.2.3.4.2 [0] stack properties
Property | Value |
Display name | stack |
Activated | true |
Id | |
Type | objectId |
Description | |
Dependencies | |
Primary key | |
Foreign collection | stack |
Foreign field | name |
Relationship type | Foreign Key |
Relationship name | fk stack. to project. |
Cardinality | 1..n |
Default | |
Sample | |
Comments | |
2.1.2.2.3.5 Field developers
2.1.2.2.3.5.1 developers Tree Diagram
![Hackolade image](/Project%20Management%20documentation/image22.png?raw=true)
2.1.2.2.3.5.2 developers Hierarchy
Parent field: project
Child field(s):
2.1.2.2.3.5.3 developers properties
Property | Value |
Name | developers |
Technical name | |
Activated | true |
Id | |
Type | array |
Description | |
Dependencies | |
Required | |
Primary key | |
Foreign collection | |
Foreign field | |
Relationship type | |
Relationship name | |
Cardinality | |
Min items | |
Max items | |
Unique items | |
Additional items | true |
Comments | |
2.1.2.2.3.6 Field [0] developer
2.1.2.2.3.6.1 [0] developer Tree Diagram
![Hackolade image](/Project%20Management%20documentation/image23.png?raw=true)
2.1.2.2.3.6.2 [0] developer properties
Property | Value |
Display name | developer |
Activated | true |
Id | |
Type | objectId |
Description | |
Dependencies | |
Primary key | |
Foreign collection | developer |
Foreign field | name |
Relationship type | Foreign Key |
Relationship name | fk developer. to project. |
Cardinality | 1..n |
Default | |
Sample | |
Comments | |
2.1.2.2.3.7 Field startdate
2.1.2.2.3.7.1 startdate Tree Diagram
![Hackolade image](/Project%20Management%20documentation/image24.png?raw=true)
2.1.2.2.3.7.2 startdate properties
Property | Value |
Name | startdate |
Technical name | |
Activated | true |
Id | |
Type | date |
Description | |
Dependencies | |
Required | |
Primary key | false |
Foreign collection | |
Foreign field | |
Relationship type | |
Relationship name | |
Cardinality | |
Default | |
Now | |
Sample | |
Comments | |
2.1.2.2.3.8 Field enddate
2.1.2.2.3.8.1 enddate Tree Diagram
![Hackolade image](/Project%20Management%20documentation/image25.png?raw=true)
2.1.2.2.3.8.2 enddate properties
Property | Value |
Name | enddate |
Technical name | |
Activated | true |
Id | |
Type | date |
Description | |
Dependencies | |
Required | |
Primary key | false |
Foreign collection | |
Foreign field | |
Relationship type | |
Relationship name | |
Cardinality | |
Default | |
Now | |
Sample | |
Comments | |
2.1.2.2.4 project JSON Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"title": "project",
"properties": {
"_id": {
"type": "string",
"pattern": "^[a-fA-F0-9]{24}$"
},
"name": {
"type": "string"
},
"requiredstack": {
"type": "array",
"additionalItems": true,
"items": {
"type": "string",
"pattern": "^[a-fA-F0-9]{24}$"
}
},
"developers": {
"type": "array",
"additionalItems": true,
"items": {
"type": "string",
"pattern": "^[a-fA-F0-9]{24}$"
}
},
"startdate": {
"type": "string",
"format": "date-time"
},
"enddate": {
"type": "string",
"format": "date-time"
}
},
"required": [
"_id",
"name"
]
}
2.1.2.2.5 project JSON data
{
"_id": ObjectId("507f1f77bcf86cd799439011"),
"name": "Lorem",
"requiredstack": [
ObjectId("507f1f77bcf86cd799439011")
],
"developers": [
ObjectId("507f1f77bcf86cd799439011")
],
"startdate": ISODate("2016-04-08T15:06:21.595Z"),
"enddate": ISODate("2016-04-08T15:06:21.595Z")
}
2.1.2.2.6 project Target Script
use Project_Management;
db.createCollection("project", {
"storageEngine": {
"wiredTiger": {}
},
"capped": false,
"validator": {
"$jsonSchema": {
"bsonType": "object",
"title": "project",
"properties": {
"_id": {
"bsonType": "objectId"
},
"name": {
"bsonType": "string"
},
"requiredstack": {
"bsonType": "array",
"additionalItems": true,
"items": {
"bsonType": "objectId"
}
},
"developers": {
"bsonType": "array",
"additionalItems": true,
"items": {
"bsonType": "objectId"
}
},
"startdate": {
"bsonType": "date"
},
"enddate": {
"bsonType": "date"
}
},
"required": [
"_id",
"name"
]
}
},
"validationLevel": "off",
"validationAction": "warn"
});
2.1.2.3.1 stack Tree Diagram
![Hackolade image](/Project%20Management%20documentation/image26.png?raw=true)
2.1.2.3.2 stack Properties
Property | Value |
Collection name | stack |
Technical name | |
Activated | true |
Id | |
Description | |
Database | Project_Management |
Capped | |
Size | |
Max | |
Storage engine | WiredTiger |
Config String | |
Validation level | Off |
Validation action | Warn |
Additional properties | |
Comments | |
2.1.2.3.3.1.1 _id Tree Diagram
![Hackolade image](/Project%20Management%20documentation/image27.png?raw=true)
2.1.2.3.3.1.2 _id properties
Property | Value |
Name | _id |
Technical name | |
Activated | true |
Id | |
Type | objectId |
Description | |
Dependencies | |
Required | true |
Primary key | true |
Foreign collection | developer |
Foreign field | |
Relationship type | |
Relationship name | |
Cardinality | |
Default | |
Sample | |
Comments | |
2.1.2.3.3.2.1 name Tree Diagram
![Hackolade image](/Project%20Management%20documentation/image28.png?raw=true)
2.1.2.3.3.2.2 name properties
Property | Value |
Name | name |
Technical name | |
Activated | true |
Id | |
Type | string |
Description | |
Dependencies | |
Required | true |
Primary key | |
Foreign collection | |
Foreign field | |
Relationship type | |
Relationship name | |
Cardinality | |
Default | |
Min length | |
Max length | |
Pattern | |
Format | |
Enum | |
Sample | JavaScript |
Comments | |
2.1.2.3.3.3 Field description
2.1.2.3.3.3.1 description Tree Diagram
![Hackolade image](/Project%20Management%20documentation/image29.png?raw=true)
2.1.2.3.3.3.2 description properties
Property | Value |
Name | description |
Technical name | |
Activated | true |
Id | |
Type | string |
Description | |
Dependencies | |
Required | |
Primary key | |
Foreign collection | |
Foreign field | |
Relationship type | |
Relationship name | |
Cardinality | |
Default | |
Min length | |
Max length | |
Pattern | |
Format | |
Enum | |
Sample | |
Comments | |
2.1.2.3.4 stack JSON Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"title": "stack",
"properties": {
"_id": {
"type": "string",
"pattern": "^[a-fA-F0-9]{24}$"
},
"name": {
"type": "string"
},
"description": {
"type": "string"
}
},
"required": [
"_id",
"name"
]
}
2.1.2.3.5 stack JSON data
{
"_id": ObjectId("507f1f77bcf86cd799439011"),
"name": "JavaScript",
"description": "Lorem"
}
2.1.2.3.6 stack Target Script
use Project_Management;
db.createCollection("stack", {
"storageEngine": {
"wiredTiger": {}
},
"capped": false,
"validator": {
"$jsonSchema": {
"bsonType": "object",
"title": "stack",
"properties": {
"_id": {
"bsonType": "objectId"
},
"name": {
"bsonType": "string"
},
"description": {
"bsonType": "string"
}
},
"required": [
"_id",
"name"
]
}
},
"validationLevel": "off",
"validationAction": "warn"
});
3.1 Relationship fk developer. to project.
3.1.1 fk developer. to project. Diagram
![Hackolade image](/Project%20Management%20documentation/image30.png?raw=true)
![Hackolade image](/Project%20Management%20documentation/image31.png?raw=true)
3.1.2 fk developer. to project. Properties
Property | Value |
Name | fk developer. to project. |
Description | |
Parent Collection | developer |
Parent field | name |
Parent Cardinality | 1 |
Child Collection | project |
Child field | |
Child Cardinality | 1..n |
Comments | |
3.2 Relationship fk project. to developer.
3.2.1 fk project. to developer. Diagram
![Hackolade image](/Project%20Management%20documentation/image32.png?raw=true)
![Hackolade image](/Project%20Management%20documentation/image33.png?raw=true)
3.2.2 fk project. to developer. Properties
Property | Value |
Name | fk project. to developer. |
Description | |
Parent Collection | project |
Parent field | name |
Parent Cardinality | 1 |
Child Collection | developer |
Child field | |
Child Cardinality | 1 |
Comments | |
3.3 Relationship fk project. to developer.
3.3.1 fk project. to developer. Diagram
![Hackolade image](/Project%20Management%20documentation/image34.png?raw=true)
![Hackolade image](/Project%20Management%20documentation/image35.png?raw=true)
3.3.2 fk project. to developer. Properties
Property | Value |
Name | fk project. to developer. |
Description | |
Parent Collection | project |
Parent field | startdate |
Parent Cardinality | 1 |
Child Collection | developer |
Child field | startdate |
Child Cardinality | 1 |
Comments | |
3.4 Relationship fk project. to developer.
3.4.1 fk project. to developer. Diagram
![Hackolade image](/Project%20Management%20documentation/image36.png?raw=true)
![Hackolade image](/Project%20Management%20documentation/image37.png?raw=true)
3.4.2 fk project. to developer. Properties
Property | Value |
Name | fk project. to developer. |
Description | |
Parent Collection | project |
Parent field | enddate |
Parent Cardinality | 1 |
Child Collection | developer |
Child field | enddate |
Child Cardinality | 1 |
Comments | |
3.5 Relationship fk stack. to project.
3.5.1 fk stack. to project. Diagram
![Hackolade image](/Project%20Management%20documentation/image38.png?raw=true)
![Hackolade image](/Project%20Management%20documentation/image39.png?raw=true)
3.5.2 fk stack. to project. Properties
Property | Value |
Name | fk stack. to project. |
Description | |
Parent Collection | stack |
Parent field | name |
Parent Cardinality | 1 |
Child Collection | project |
Child field | |
Child Cardinality | 1..n |
Comments | |
3.6 Relationship fk stacks. to developer.
3.6.1 fk stacks. to developer. Diagram
![Hackolade image](/Project%20Management%20documentation/image40.png?raw=true)
![Hackolade image](/Project%20Management%20documentation/image41.png?raw=true)
3.6.2 fk stacks. to developer. Properties
Property | Value |
Name | fk stacks. to developer. |
Description | |
Parent Collection | stack |
Parent field | name |
Parent Cardinality | 1 |
Child Collection | developer |
Child field | , New Field |
Child Cardinality | 1..n |
Comments | |