Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

214
Views
Update data in MongoDB Model in intervals

I am making a login system. I am trying to make user wait for 5 minutes when login attempts exceed 3 times, here is the User Model:

const mongoose = require("mongoose");
const validator = require("validator");
const bcrypt = require("bcryptjs");
const jwt = require("jsonwebtoken");
const crypto = require("crypto");

const UserSchema = new mongoose.Schema({
  // Other Model Schemas
  loginAttempts: { type: Number, default: 0 },
});

//Functions - Other functions above

// I am trying to make user wait for 5 minutes when login attempts exceed 3.
// But this is not working.

if (this.loginAttempts > 3) {
  setTimeout(() => {
    this.loginAttempts = 0;
    this.save();
  }, 1000 * 60 * 5);
}
if (this.loginAttempts >= 1) {
  setTimeout(() => {
    this.loginAttempts = 0;
    this.save();
  }, 1000 * 60 * 60 * 60 * 1);
}

const User = mongoose.model("User", UserSchema);
module.exports = User;

I was searching UserSchema.<parameter>, I was searching parameters or function (sorry I don't know the exact term) which works like setTimeout() or setInterval() which checks on model and updates data like I have tried in above if(){} statement.

Can anyone suggest me a function in Schema which checks on intervals and update data as the time runs out just like, setTimeout function and setInterval function

about 4 years ago · Juan Pablo Isaza
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!