Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

134
Vistas
¿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 Respuestas
Responde la pregunta

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 Denunciar

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda