const mongoose = require('mongoose').set('debug', false) const Schema = mongoose.Schema; const tools = require('../tools/general'); mongoose.Promise = global.Promise; mongoose.level = "F"; // Resolving error Unknown modifier: $pushAll mongoose.plugin(schema => { schema.options.usePushEach = true }); const PermissionSchema = new Schema({ _id: { type: Number, }, label: { type: String, default: '' } }, { _id: false }); PermissionSchema.pre('save', async function (next) { if (this.isNew) { const myrec = await Permission.findOne().limit(1).sort({ _id: -1 }); if (!!myrec) { if (myrec._doc._id === 0) this._id = 1; else this._id = myrec._doc._id * 2; } else { this._id = 1; } } next(); }); PermissionSchema.statics.executeQueryTable = function (idapp, params) { params.fieldsearch = this.getFieldsForSearch(); return tools.executeQueryTable(this, 0, params); }; PermissionSchema.statics.findAllIdApp = async function () { const Permission = this; const myfind = {}; return await Permission.find(myfind, (err, arrrec) => { return arrrec }); }; const Permission = mongoose.model('Permission', PermissionSchema); Permission.createIndexes((err) => { if (err) throw err; }); module.exports = { Permission };