Adjusted mongo indexes to support index scanning

This commit is contained in:
Wyatt Johnson
2017-12-04 09:05:40 -07:00
parent cbf3e4734d
commit 674ab19d06
8 changed files with 109 additions and 25 deletions
@@ -1,10 +1,24 @@
const {SEARCH_OTHER_USERS} = require('../../../perms/constants');
const errors = require('../../../errors');
const pluralize = require('pluralize');
const sc = require('snake-case');
const CommentModel = require('../../../models/comment');
const {CREATE_MONGO_INDEXES} = require('../../../config');
function getReactionConfig(reaction) {
reaction = reaction.toLowerCase();
if (CREATE_MONGO_INDEXES) {
// Create the index on the comment model based on the reaction config.
CommentModel.collection.createIndex({
created_at: 1,
[`action_counts.${sc(reaction)}`]: 1
}, {
background: true,
});
}
const reactionPlural = pluralize(reaction);
const Reaction = reaction.charAt(0).toUpperCase() + reaction.slice(1);
const REACTION = reaction.toUpperCase();
@@ -112,6 +126,14 @@ function getReactionConfig(reaction) {
return {
typeDefs,
schemas: ({CommentSchema}) => {
CommentSchema.index({
'created_at': 1,
[`action_counts.${sc(reaction)}`]: 1,
}, {
background: true,
});
},
context: {
Sort: () => ({
Comments: {