Hi,
I would like to compare two fields inside the arrayFilters. In particulare, I have the following modeling:
services: [
{
name: string
total: number
current: number
},
...
]
I would like to perform the following operation:
let delta: number = 1
let serviceName: string = "serviceName"
let filterOp = {
_id: ObjectId("...")
}
let updateOp = {
$inc: {
"services.$[service].current": delta
}
}
let arrayFiltersOp = [
{
"service.name": serviceName //This is just to filter by serviceName and it works.
"service.total": {$gte: "$service.current" + delta} //This doesn't work!!!
}
]
db.find(filterOp).arrayFilters(arrayFiltersOp).updateOne(updateOp)