UNPKG

mongoose-atlas-search

Version:

A customisable mongoose plugin to use MongoDB Atlas Search feature

32 lines 1.44 kB
"use strict"; const utils_1 = require("./lib/utils"); const atlasSearchPlugin = { initialize: (options) => { const pluginOptions = (0, utils_1.validateOptions)(options); const { model, searchKey, overwriteFind } = pluginOptions; const find = model.find.bind(model); const aggregation = model.aggregate.bind(model); if (overwriteFind) { model.find = function (query = {}, projection, queryOptions = {}) { if (query[searchKey]) { const aggregationQuery = (0, utils_1.buildAggregationQuery)(query, projection, queryOptions, pluginOptions); return aggregation(aggregationQuery); } else return queryOptions.useCursor ? find(query, projection, queryOptions).cursor() : find(query, projection, queryOptions); }; } else { model.search = function (query = {}, projection, queryOptions = {}) { if (!query[searchKey]) throw new Error(`${searchKey} query param is required!`); const aggregationQuery = (0, utils_1.buildAggregationQuery)(query, projection, queryOptions, pluginOptions); return aggregation(aggregationQuery); }; } }, }; module.exports = atlasSearchPlugin; //# sourceMappingURL=index.js.map