Skip to content
This repository was archived by the owner on Jun 27, 2019. It is now read-only.

Commit ddfaee4

Browse files
added needed indexes on data model
1 parent 67bceee commit ddfaee4

File tree

7 files changed

+31
-27
lines changed

7 files changed

+31
-27
lines changed

server/models/comments.model.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
// comments-model.js - A mongoose model
2-
//
2+
//
33
// See http://mongoosejs.com/docs/models.html
44
// for more of what you can do here.
55
module.exports = function (app) {
66
const mongooseClient = app.get('mongooseClient');
77
const comments = new mongooseClient.Schema({
8-
userId: { type: String, required: true },
9-
contributionId: { type: String, required: true },
8+
userId: { type: String, required: true, index: true },
9+
contributionId: { type: String, required: true, index: true },
1010
content: { type: String, required: true },
1111
// Generated from content
1212
contentExcerpt: { type: String, required: true },
1313
upvotes: { type: Array, default: [] },
1414
upvoteCount: { type: Number, default: 0 },
15-
deleted: { type: Boolean, default: false },
15+
deleted: { type: Boolean, default: false, index: true },
1616
createdAt: { type: Date, default: Date.now },
1717
updatedAt: { type: Date, default: Date.now },
1818
wasSeeded: { type: Boolean }

server/models/contributions.model.js

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -26,24 +26,25 @@ module.exports = function (app) {
2626
});
2727

2828
const contributions = new mongooseClient.Schema({
29-
userId: { type: String, required: true },
30-
categoryIds: { type: Array },
29+
userId: { type: String, required: true, index: true },
30+
categoryIds: { type: Array, index: true },
3131
title: { type: String, required: true },
3232
// Generated from title
33-
slug: { type: String, required: true, unique: true },
34-
type: { type: String, required: true },
33+
slug: { type: String, required: true, unique: true, index: true },
34+
type: { type: String, required: true, index: true },
3535
cando: candoSchema,
3636
content: { type: String, required: true },
3737
// Generated from content
3838
contentExcerpt: { type: String, required: true },
3939
teaserImg: { type: String },
40-
language: { type: String, required: true },
41-
shoutCount: { type: Number, default: 0 },
40+
language: { type: String, required: true, index: true },
41+
shoutCount: { type: Number, default: 0, index: true },
4242
meta: metaSchema,
4343
visibility: {
4444
type: String,
4545
enum: ['public', 'friends', 'private'],
46-
default: 'public'
46+
default: 'public',
47+
index: true
4748
},
4849
isEnabled: {
4950
type: Boolean,
@@ -75,7 +76,7 @@ module.exports = function (app) {
7576
}
7677
}
7778
},
78-
deleted: { type: Boolean, default: false },
79+
deleted: { type: Boolean, default: false, index: true },
7980
createdAt: { type: Date, default: Date.now },
8081
updatedAt: { type: Date, default: Date.now },
8182
wasSeeded: { type: Boolean }

server/models/emotions.model.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
// emotions-model.js - A mongoose model
2-
//
2+
//
33
// See http://mongoosejs.com/docs/models.html
44
// for more of what you can do here.
55
module.exports = function (app) {
66
const mongooseClient = app.get('mongooseClient');
77
const emotions = new mongooseClient.Schema({
8-
userId: { type: String, required: true },
9-
contributionId: { type: String, required: true },
8+
userId: { type: String, required: true, index: true },
9+
contributionId: { type: String, required: true, index: true },
1010
rated: {
1111
type: String,
1212
required: true,

server/models/notifications.model.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
// notifications-model.js - A mongoose model
2-
//
2+
//
33
// See http://mongoosejs.com/docs/models.html
44
// for more of what you can do here.
55
module.exports = function (app) {
66
const mongooseClient = app.get('mongooseClient');
77
const notifications = new mongooseClient.Schema({
88
// User this notification is sent to
9-
userId: { type: String, required: true },
9+
userId: { type: String, required: true, index: true },
1010
type: {
1111
type: String,
1212
required: true,
@@ -15,7 +15,7 @@ module.exports = function (app) {
1515
relatedUserId: { type: String },
1616
relatedContributionId: { type: String },
1717
relatedCommentId: { type: String },
18-
unseen: { type: Boolean, default: true },
18+
unseen: { type: Boolean, default: true, index: true },
1919
createdAt: { type: Date, default: Date.now },
2020
updatedAt: { type: Date, default: Date.now },
2121
wasSeeded: { type: Boolean }

server/models/organizations.model.js

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ module.exports = function (app) {
77
const { Schema } = mongooseClient;
88
const organizations = new Schema({
99
name: { type: String, required: true },
10-
slug: { type: String, required: true, unique: true },
10+
slug: { type: String, required: true, unique: true, index: true },
1111
followerIds: [],
12-
categoryIds: { type: Array },
12+
categoryIds: { type: Array, index: true },
1313
logo: { type: String },
1414
coverImg: { type: String },
1515
userId: { type: String, required: true },
@@ -20,20 +20,22 @@ module.exports = function (app) {
2020
type: String,
2121
enum: ['ngo', 'npo', 'goodpurpose', 'ev', 'eva']
2222
},
23-
language: { type: String, required: true, default: 'de' },
23+
language: { type: String, required: true, default: 'de', index: true },
2424
// will be generated automatically
2525
descriptionExcerpt: { type: String },
2626
addresses: { type: Array, default: [] },
2727
createdAt: { type: Date, default: Date.now },
2828
updatedAt: { type: Date, default: Date.now },
2929
isEnabled: {
3030
type: Boolean,
31-
default: false
31+
default: false,
32+
index: true
3233
},
3334
reviewedBy: { type: String },
3435
deleted: {
3536
type: Boolean,
36-
default: false
37+
default: false,
38+
index: true
3739
},
3840
wasSeeded: { type: Boolean }
3941
});

server/models/pages.model.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@ module.exports = function (app) {
66
const mongooseClient = app.get('mongooseClient');
77
const pages = new mongooseClient.Schema({
88
title: { type: String, required: true },
9-
slug: { type: String, required: true },
9+
slug: { type: String, required: true, index: true },
1010
type: { type: String, required: true, default: 'page' },
11-
key: { type: String, required: true },
11+
key: { type: String, required: true, index: true },
1212
content: { type: String, required: true },
1313
language: { type: String, required: true, index: true },
1414
active: { type: Boolean, default: true, index: true },

server/models/users.model.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@ module.exports = function (app) {
1010
id: String
1111
});
1212
const users = new mongooseClient.Schema({
13-
email: {type: String, required: true, unique: true},
13+
email: {type: String, index: true, required: true, unique: true},
1414
password: { type: String },
1515
name: { type: String },
16-
slug: { type: String },
16+
slug: { type: String, index: true },
1717
gender: { type: String },
1818
followerIds: [],
1919
follows: [followsSchema],
@@ -32,6 +32,7 @@ module.exports = function (app) {
3232
isVerified: { type: Boolean },
3333
role: {
3434
type: String,
35+
index: true,
3536
enum: ['admin', 'moderator', 'manager', 'editor', 'user'],
3637
default: 'user'
3738
},

0 commit comments

Comments
 (0)