Server IP : 162.213.251.212 / Your IP : 18.118.19.210 [ Web Server : LiteSpeed System : Linux business55.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64 User : allssztx ( 535) PHP Version : 8.1.31 Disable Function : NONE Domains : 1 Domains MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/allssztx/needapair.com/node_modules/mongoose/lib/helpers/indexes/ |
Upload File : |
'use strict'; const hasDollarKeys = require('../query/hasDollarKeys'); function getRelatedSchemaIndexes(model, schemaIndexes) { return getRelatedIndexes({ baseModelName: model.baseModelName, discriminatorMapping: model.schema.discriminatorMapping, indexes: schemaIndexes, indexesType: 'schema' }); } function getRelatedDBIndexes(model, dbIndexes) { return getRelatedIndexes({ baseModelName: model.baseModelName, discriminatorMapping: model.schema.discriminatorMapping, indexes: dbIndexes, indexesType: 'db' }); } module.exports = { getRelatedSchemaIndexes, getRelatedDBIndexes }; function getRelatedIndexes({ baseModelName, discriminatorMapping, indexes, indexesType }) { const discriminatorKey = discriminatorMapping && discriminatorMapping.key; const discriminatorValue = discriminatorMapping && discriminatorMapping.value; if (!discriminatorKey) { return indexes; } const isChildDiscriminatorModel = Boolean(baseModelName); if (isChildDiscriminatorModel) { return indexes.filter(index => { const partialFilterExpression = getPartialFilterExpression(index, indexesType); return partialFilterExpression && partialFilterExpression[discriminatorKey] === discriminatorValue; }); } return indexes.filter(index => { const partialFilterExpression = getPartialFilterExpression(index, indexesType); return !partialFilterExpression || !partialFilterExpression[discriminatorKey] || (hasDollarKeys(partialFilterExpression[discriminatorKey]) && !('$eq' in partialFilterExpression[discriminatorKey])); }); } function getPartialFilterExpression(index, indexesType) { if (indexesType === 'schema') { const options = index[1]; return options && options.partialFilterExpression; } return index.partialFilterExpression; }