Mongoose extending a Schema with add()
JS
S
JavaScriptPlain simple example of how to extend a Schema.
1import * as mongoose from 'mongoose';
2import { Telemetry } from './telemetry.model';
3import { Schema } from 'mongoose';
4const telemetryInsertMiddleware = (req, res) => {
5 // Document
6 let doc;
7 const callback = function (err) {
8 if (err) return err;
9 res.sendStatus(200, doc)
10 };
11
12 // Conditional
13 if (req.body.securityLevel < 7) {
14 doc = new Telemetry(req.body);
15 Telemetry.findOneAndUpdate({ _id: req.params.id }, doc, callback);
16 } else {
17 // Extending Schema
18 const SecureTelemetry = Telemetry.schema.add({
19 requiresActivation: {
20 type: Boolean, default: false
21 }
22 }) as any;
23 doc = new SecureTelemetry(req.body);
24 SecureTelemetry.findOneAndUpdate({ _id: req.params.id }, doc, callback);
25 }
26}Created on 1/24/2018