These operators help you update a value only if the new value is smaller ($min) or larger ($max) than the current one. This keeps your data accurate without extra checks.
$min and $max update operators in MongoDB
db.collection.updateOne(
{ <filter> },
{ $min: { <field1>: <value1>, ... } }
)
// or
db.collection.updateOne(
{ <filter> },
{ $max: { <field2>: <value2>, ... } }
)
// or both together
db.collection.updateOne(
{ <filter> },
{ $min: { <field1>: <value1>, ... }, $max: { <field2>: <value2>, ... } }
)You can use $min and $max together or separately in the same update.
If the current field value is missing, $min and $max will set it to the given value.
db.players.updateOne(
{ name: "Alice" },
{ $min: { score: 50 } }
)db.weather.updateOne(
{ city: "Paris" },
{ $max: { temperature: 30 } }
)db.products.updateOne(
{ productId: 123 },
{ $min: { price: 100 }, $max: { highPrice: 200 } }
)This example inserts a player Bob with scores, then updates his highScore only if 90 is higher, and lowScore only if 15 is lower.
db.scores.insertOne({ player: "Bob", highScore: 80, lowScore: 20 })
// Try to update highScore to 90 only if it's higher
// Try to update lowScore to 15 only if it's lower
db.scores.updateOne(
{ player: "Bob" },
{ $max: { highScore: 90 }, $min: { lowScore: 15 } }
)
// Find the updated document
db.scores.findOne({ player: "Bob" })If the field does not exist, $min and $max will create it with the given value.
These operators only work with numbers, dates, and strings that can be compared.
They do not replace the value if the condition is not met, so your data stays safe.
$min updates a field only if the new value is smaller than the current one.
$max updates a field only if the new value is larger than the current one.
Use them to keep track of minimum or maximum values easily without extra code.
Practice
$min update operator do in MongoDB?Solution
Step 1: Understand the purpose of
The$min$minoperator updates a field only if the new value is smaller than the current value stored in that field.Step 2: Compare with other options
$maxupdates if the new value is larger, and other options do not match the behavior of$min.Final Answer:
Updates the field only if the new value is smaller than the current value. -> Option AQuick Check:
$minupdates only if smaller [OK]
- Confusing $min with $max behavior
- Thinking $min always updates the field
- Assuming $min deletes fields
$max to update the field score to 90 in MongoDB?Solution
Step 1: Recall correct MongoDB update syntax
MongoDB update operators use the format:{ $operator: { field: value } }. So$maxmust be followed by an object with field and value.Step 2: Check each option
{ $max: { score: 90 } } matches the correct syntax. The options missing braces around the field-value pair or using brackets [] have invalid syntax. { $max: { 'score' => 90 } } uses '=>' which is not valid in MongoDB queries.Final Answer:
{ $max: { score: 90 } } -> Option CQuick Check:
Correct MongoDB update syntax = { $max: { score: 90 } } [OK]
- Using brackets [] instead of braces {}
- Missing braces around field-value pairs
- Using arrow syntax '=>' instead of colon ':'
{ _id: 1, highScore: 80 }, what will be the document after applying db.collection.updateOne({_id:1}, { $max: { highScore: 75 } })?Solution
Step 1: Understand $max behavior on existing value
The$maxoperator updates the field only if the new value is greater than the current value. Here, currenthighScoreis 80, new value is 75.Step 2: Compare values and decide update
Since 75 is less than 80, the field will NOT be updated. The document remains unchanged.Final Answer:
{ _id: 1, highScore: 80 } -> Option DQuick Check:
$maxupdates only if new value is larger [OK]
- Assuming $max always updates the field
- Confusing $max with $min behavior
- Thinking update fails if condition not met
db.collection.updateOne({_id: 2}, { $min: { age: 30 } }) but it does not update the document. What could be the reason?Solution
Step 1: Understand
$minupdate condition$minupdates the field only if the new value is smaller than the current value.Step 2: Analyze why update might not happen
If the currentageis already less than 30, the update will not change the document. Other options are incorrect because$mindoes not require arrays, the syntax is correct, and the question states the update runs but no change occurs.Final Answer:
The current age in the document is less than 30. -> Option BQuick Check:
$minupdates only if new value smaller [OK]
- Thinking $min requires array values
- Assuming syntax error without checking
- Ignoring existing document values
minTemp and maxTemp. Which update operation correctly updates both fields when a new temperature temp is 15?Solution
Step 1: Understand the goal for minTemp and maxTemp
We wantminTempto update only if the new temperature is lower, so use$min. FormaxTemp, update only if new temperature is higher, so use$max.Step 2: Check each option for correct operator usage
{ $min: { minTemp: 15 }, $max: { maxTemp: 15 } } correctly uses$minforminTempand$maxformaxTemp. { $max: { minTemp: 15 }, $min: { maxTemp: 15 } } and { $min: { maxTemp: 15 }, $max: { minTemp: 15 } } swap operators incorrectly. { $set: { minTemp: 15, maxTemp: 15 } } always sets both fields to 15, ignoring previous values.Final Answer:
{ $min: { minTemp: 15 }, $max: { maxTemp: 15 } } -> Option AQuick Check:
Use $min for minTemp and $max for maxTemp [OK]
- Swapping $min and $max operators
- Using $set which overwrites values blindly
- Updating wrong fields with wrong operators
Ready to prove it?
Pass the test and this pattern moves unknown
