Each user can apply for a job, and a company would also like to know who has applied to their available job position. To handle such scenarios, we are going to store all applications for a job in a separate collection in MongoDB. We are going to describe the backend Node.js application logic.
The application model will be pretty simple and straightforward. We could have gone with an embedded data model. In other words, we could have saved all applications in the job entity. From my point of view, separate collections gives you more flexibility.
Let's create a file called app/models/application.js
and add the following code to define the schema:
'use strict'; const mongoose = require('mongoose'); const Schema = mongoose.Schema; const ObjectId = Schema.ObjectId; let ApplicationSchema = new Schema({ user: { type: ObjectId, required: true, ref: 'User' }, status: { type: String, default: 'pending', enum: ['pending', 'accepted...