Creating Mongoose model
You have created a good model overall and I can only suggest you some consideration.

Instead of using, created &amp; lastModified.
I would recommend you to use timestamp option in mongoose.

const GAPFApplicationSchema = new Schema({
  facultyId: { type: Number, index: true },
  status: { type: String, enum: ["SUBMITTED", "BUDGET_ALLOCATED"] },
  attachedDocuments: [
    {
      name: String,
      link: String,
      attachedDate: Number
    }
  ]
}, {timestamp: true});


With this you won't need lastModified &amp; created you will get 2 attributes createdAt &amp; updatedAt and they would be handled by mongoose, so you wont have to worry about updating them. 

status: { type: String, enum: ["SUBMITTED", "BUDGET_ALLOCATED"] },


you can also improve this piece of code, by changing it to number and create an internal mapping, this would allow mongoDB to search faster, as comparing string is much heavier task, than comparing numbers.