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

194
Vistas
MongoDB findOneAndUpdate por valor menor que otro valor

Parece que no puedo descifrar la sintaxis correcta para actualizar (incrementar) un valor en 1 si un valor es más pequeño que otro. Aquí hay algunos detalles más:

Estructura de datos

 { "currentTask": 0, "maximumTask":10 }

Lo que quiero hacer

  1. Si hay un documento en el que currentTask < maximumTask
  2. recuperar ese documento
  3. Incrementa el valor de la currentTask en 1

lo que probé

 let solver = await solvers.findOneAndUpdate({"currentTask":{"$lt": "$maximumTask"}},{"$inc":{"currentTask":1}});

¡Siento que estoy bastante cerca pero obviamente soy nuevo en MongoDB! Cualquier ayuda sería muy apreciada :)

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

La sintaxis que usa es para comparar un valor que está en el documento con un valor de entrada (que no está guardado en el documento). Si desea comparar dos valores del documento, use $expr :

 db.collection.findOneAndUpdate({ $expr: { $lt: [ "$currentTask", "$maximumTask" ] } }, { $inc: { currentTask: 1 } })

Ejemplo de patio de recreo

Esta respuesta devolverá el documento antes de la actualización. Para obtener el documento después de la actualización, use las opciones como esta:

 db.collection.findOneAndUpdate( {$expr: {$lt: ["$currentTask", "$maximumTask"]}}, {$inc: {currentTask: 1}}, {returnNewDocument: 1})
about 4 years ago · Juan Pablo Isaza 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