diff --git a/packages/vulcan-core/lib/modules/default_resolvers.js b/packages/vulcan-core/lib/modules/default_resolvers.js index dc4633dc83..433b6dbdc8 100644 --- a/packages/vulcan-core/lib/modules/default_resolvers.js +++ b/packages/vulcan-core/lib/modules/default_resolvers.js @@ -9,6 +9,7 @@ import { createError } from 'apollo-errors'; const defaultOptions = { cacheMaxAge: 300, + maxCountQuery: 500 }; // note: for some reason changing resolverOptions to "options" throws error @@ -80,7 +81,7 @@ export function getDefaultResolvers(options) { if (enableTotal) { // get total count of documents matching the selector - data.totalCount = await Connectors.count(collection, selector); + data.totalCount = await Connectors.count(collection, selector, {limit: resolverOptions.maxCountQuery}); } // return results diff --git a/packages/vulcan-lib/lib/server/connectors/mongo.js b/packages/vulcan-lib/lib/server/connectors/mongo.js index 305b38fa0c..e55dffd31f 100644 --- a/packages/vulcan-lib/lib/server/connectors/mongo.js +++ b/packages/vulcan-lib/lib/server/connectors/mongo.js @@ -23,7 +23,7 @@ DatabaseConnectors.mongo = { return await collection.find(convertSelector(selector), options).fetch(); }, count: async (collection, selector = {}, options = {}) => { - return await collection.find(convertSelector(selector), options).count(); + return await collection.find(convertSelector(selector), options).count(options); }, create: async (collection, document, options = {}) => { return await collection.insert(document);