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
currentTask < maximumTaskcurrentTask en 1lo 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 :)
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 } })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})