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

132
Views
¿Cómo excluir los domingos del rango de fechas en la consulta mongodb?

Necesito obtener las transacciones de cada usuario cada tres días. Quiero conocer a los usuarios que no tienen hasta una cierta cantidad (200) dentro del período de tres días, luego obtener la suma de todas las transacciones de cada usuario. Quiero excluir el domingo ya que las transacciones siempre son bajas los domingos.

Quiero asegurarme de que esto se haga directamente desde la base de datos porque las transacciones de cada usuario pueden ascender a miles, incluso millones.

Estoy usando dayjs para manipular el tiempo pero no lo estoy haciendo bien

He podido obtener las tres fechas anteriores y la fecha actual. La fecha anterior será startDate y la fecha actual será endDate.

Pero necesito eliminar si el domingo está en el rango y usarlo para consultar la base de datos.

Esto es lo que he hecho, lo que no estoy cerca de arreglarlo.

¿Cómo puedo consultar la tabla de transacciones por fecha de creación y excluir los domingos?

muestra de esquema

 export const TransactionSchema = new mongoose.Schema({ description: { type: String }, ref: { type: String, required: true }, userID: { type: mongoose.SchemaTypes.ObjectId, ref: 'User' }, amount: { type: Number, required: true, }, commission: { type: Number, default: 0 }, responseDescription: { type: String }, authCode: { type: Number }, isDeleted: { type: Boolean, default: false }, dateCreated: { type: Date, default: Date.now }, dateUpdated: { type: Date, required: false }, openingBalance: { type: Number }, closingBalance: { type: Number }, })

método

 async getUserRequiredTargetTrans() { let now = dayjs();//endDate let fromThreeDays = now.subtract('2', 'day') let sunday = now.day(0) let withOutSunday = now.diff(fromThreeDays);//startDate const response = await this.transactionModel.find({ isDeleted: false, dateCreated: { $gte: withOutSunday, $lt: now } })
over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Para excluir los domingos del rango de fechas, puede usar el operador $where como este:

 async getUserRequiredTargetTrans() { let from = dayjs();//endDate let fromThreeDays = now.subtract('2', 'day') const response = await this.transactionModel.find({ isDeleted: false, dateCreated: { $gte: fromThreeDays, $lt: now }, // exculde sunday $where: `function() { return this.dateCreated.getDay() !== 0;}` } )
over 4 years ago · Santiago Trujillo Report

0

dayjs un día, no sabes si puedes usarlo directamente. Tal vez tengas que usar

 find({ isDeleted: false, dateCreated: { $gte: withOutSunday.toDate(), $lt: now.toDate() } })
over 4 years ago · Santiago Trujillo Report
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!