const mongoose = require('mongoose').set('debug', false); const Schema = mongoose.Schema; const escapeStringRegexp = require('escape-string-regexp'); mongoose.Promise = global.Promise; mongoose.level = 'F'; const tools = require('../tools/general'); const {ObjectID} = require('mongodb'); const shared_consts = require('../tools/shared_nodejs'); // Resolving error Unknown modifier: $pushAll mongoose.plugin(schema => { schema.options.usePushEach = true; }); const ProvinceSchema = new Schema({ _id: { type: Number, }, reg: { type: String, }, prov: { type: String, // unique: true, maxlength: 3, }, descr: { type: String, }, link_grp: { type: String, }, }, { _id : false }); ProvinceSchema.statics.getRegionByStrProvince = async function(strprovince) { const myrec = await Province.findOne({prov: strprovince}).lean(); if (myrec) { return myrec.reg; } return ''; } ProvinceSchema.statics.getFieldsForSearch = function() { return [ {field: 'prov', type: tools.FieldType.string}, {field: 'descr', type: tools.FieldType.string}, ]; }; ProvinceSchema.statics.executeQueryTable = function(idapp, params) { params.fieldsearch = this.getFieldsForSearch(); const strfind = params.search; if (strfind === '') { return []; } return tools.executeQueryTable(this, 0, params); }; ProvinceSchema.statics.executeQueryPickup = async function(idapp, params) { const strfind = params.search; if (strfind === '') { return []; } let filterfindexact = {descr: strfind}; const risexact = await Province.find(filterfindexact).lean(); let filterfind = {}; filterfind = {descr: {$regex: '^' + strfind, $options: 'i'}}; const ris = await Province.find(filterfind).lean().limit(10); return [...risexact, ...ris]; }; ProvinceSchema.statics.findAllIdApp = async function(idapp) { const myfind = {}; return Province.find(myfind).sort({prov: 1}); }; const Province = mongoose.model('Province', ProvinceSchema); module.exports = {Province};