MongoDB Update Operators and Array Patterns/Target specific nested elements with arrayFilters

Update matching array elements with named filters.

Section: Arrays and positional updates

Target specific nested elements with arrayFilters

javascript
javascript
db.orders.updateOne(
  { _id: 1 },
  { $set: { "items.$[line].discounted": true } },
  { arrayFilters: [{ "line.qty": { $gte: 5 } }] }
)
Explanation

`arrayFilters` are powerful for targeted nested updates without rewriting the whole array.

Learn the surrounding workflow

Compare similar commands or jump into common fixes when this command is part of a bigger troubleshooting path.

Related commands

Same sheet · prioritizing Arrays and positional updates
Append to an array
Push one item onto an array field.
OpenIn sheetjavascriptsame section
Append only if missing
Use `$addToSet` to avoid duplicates.
OpenIn sheetjavascriptsame section
Remove array values
Delete matching values from an array.
OpenIn sheetjavascriptsame section
Update the first matching array element
Use the positional `$` operator.
OpenIn sheetjavascriptsame section
Increment a numeric field
Increase a counter with `$inc`.
OpenIn sheetjavascript1 tag match
Remove a field
Delete one or more fields from matched documents.
OpenIn sheetjavascript1 tag match