Skip to content

Commit cba8b54

Browse files
authored
Merge pull request #3211 from processing/task/mongodb-queries
Improve performance for user database queries
2 parents e275bdf + a8d86f8 commit cba8b54

File tree

4 files changed

+9
-3
lines changed

4 files changed

+9
-3
lines changed

server/controllers/user.controller.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,9 @@ export async function validateResetPasswordToken(req, res) {
171171
const user = await User.findOne({
172172
resetPasswordToken: req.params.token,
173173
resetPasswordExpires: { $gt: Date.now() }
174-
}).exec();
174+
})
175+
.lean()
176+
.exec();
175177
if (!user) {
176178
res.status(401).json({
177179
success: false,

server/models/project.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,5 +76,7 @@ projectSchema.methods.isSlugUnique = async function isSlugUnique() {
7676
};
7777
};
7878

79+
projectSchema.index({ user: 1 }, { collation: { locale: 'en', strength: 2 } });
80+
7981
export default mongoose.models.Project ||
8082
mongoose.model('Project', projectSchema);

server/models/user.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -310,6 +310,7 @@ userSchema.statics.findByEmailOrUsername = async function findByEmailOrUsername(
310310
const foundUser = await user
311311
.findOne(query)
312312
.collation({ locale: 'en', strength: 2 })
313+
.lean()
313314
.exec();
314315

315316
return foundUser;
@@ -343,6 +344,7 @@ userSchema.statics.findByEmailAndUsername = async function findByEmailAndUsernam
343344
const foundUser = await user
344345
.findOne(query)
345346
.collation({ locale: 'en', strength: 2 })
347+
.lean()
346348
.exec();
347349

348350
return foundUser;

server/views/404Page.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,13 +78,13 @@ export const get404Sketch = async () => {
7878
</html>`);
7979

8080
try {
81-
const p5User = await User.findOne({ username: 'p5' }).exec();
81+
const p5User = await User.findOne({ username: 'p5' }).lean().exec();
8282

8383
if (!p5User) {
8484
return errorMessage;
8585
}
8686

87-
const projects = await Project.find({ user: p5User._id }).exec();
87+
const projects = await Project.find({ user: p5User._id }).lean().exec();
8888

8989
if (!projects.length) {
9090
return errorMessage;

0 commit comments

Comments
 (0)