Bird
Raised Fist0
MongoDBquery~10 mins

$inc operator for incrementing in MongoDB - Interactive Code Practice

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to increment the field 'score' by 1 in a MongoDB update.

MongoDB
db.collection.updateOne({ _id: 1 }, { [1]: { score: 1 } })
Drag options to blanks, or click blank then click option'
A$set
B$inc
C$push
D$addToSet
Attempts:
3 left
💡 Hint
Common Mistakes
Using $set instead of $inc will replace the value instead of incrementing.
Using $push or $addToSet are for arrays, not numbers.
2fill in blank
medium

Complete the code to increment the 'views' field by 5 in a MongoDB update.

MongoDB
db.collection.updateOne({ _id: 2 }, { [1]: { views: 5 } })
Drag options to blanks, or click blank then click option'
A$inc
B$min
C$mul
D$set
Attempts:
3 left
💡 Hint
Common Mistakes
Using $set will overwrite the value instead of incrementing.
Using $mul multiplies the value, not increments.
3fill in blank
hard

Fix the error in the update code to increment 'likes' by 3.

MongoDB
db.collection.updateOne({ _id: 3 }, { $inc: { likes: [1] } })
Drag options to blanks, or click blank then click option'
A'3'
B-3
C3
Dtrue
Attempts:
3 left
💡 Hint
Common Mistakes
Putting the number in quotes makes it a string, which is invalid.
Using true is not a number and causes an error.
4fill in blank
hard

Fill both blanks to increment 'count' by 2 and 'score' by 10 in one update.

MongoDB
db.collection.updateOne({ _id: 4 }, { [1]: { count: 2, [2]: 10 } })
Drag options to blanks, or click blank then click option'
A$inc
B$set
Cscore
D$mul
Attempts:
3 left
💡 Hint
Common Mistakes
Using $set will overwrite values instead of incrementing.
Using $mul multiplies values, not increments.
5fill in blank
hard

Fill all three blanks to increment 'likes' by 1, 'views' by 5, and 'shares' by 2 in one update.

MongoDB
db.collection.updateOne({ _id: 5 }, { [1]: { likes: [2], views: [3], shares: 2 } })
Drag options to blanks, or click blank then click option'
A$set
B$inc
C1
D5
Attempts:
3 left
💡 Hint
Common Mistakes
Using $set will overwrite values instead of incrementing.
Putting numbers in quotes makes them strings, which is invalid.

Practice

(1/5)
1. What does the $inc operator do in MongoDB?
easy
A. It creates a new collection.
B. It increments or decrements the value of a numeric field.
C. It deletes a field from the document.
D. It replaces the entire document with a new one.

Solution

  1. Step 1: Understand the purpose of $inc

    The $inc operator is used to add or subtract a number from an existing numeric field in a document.
  2. Step 2: Compare with other options

    Replacing documents, deleting fields, or creating collections are not functions of $inc.
  3. Final Answer:

    It increments or decrements the value of a numeric field. -> Option B
  4. Quick Check:

    $inc changes numbers by adding/subtracting [OK]
Hint: Remember: $inc changes numbers, not documents [OK]
Common Mistakes:
  • Thinking $inc replaces the whole document
  • Confusing $inc with delete or create operations
  • Assuming $inc works on non-numeric fields
2. Which of the following is the correct syntax to increment the field score by 5 in MongoDB?
easy
A. { $inc: { score: '5' } }
B. { $inc: { score: '+5' } }
C. { $inc: { 'score': 'five' } }
D. { $inc: { score: 5 } }

Solution

  1. Step 1: Check the value type for $inc

    The value to increment must be a number, not a string or word.
  2. Step 2: Validate syntax correctness

    { $inc: { score: 5 } } uses a number 5 correctly. { $inc: { score: '5' } } uses a string '5', which is invalid. { $inc: { 'score': 'five' } } uses a word 'five', invalid. { $inc: { score: '+5' } } uses a string '+5', invalid.
  3. Final Answer:

    { $inc: { score: 5 } } -> Option D
  4. Quick Check:

    Use number values with $inc [OK]
Hint: Use numeric values without quotes for $inc [OK]
Common Mistakes:
  • Using strings instead of numbers for increment values
  • Adding plus sign (+) inside JSON value
  • Using words instead of numeric literals
3. Given a document { _id: 1, count: 10 }, what will be the document after running db.collection.updateOne({ _id: 1 }, { $inc: { count: -3 } })?
medium
A. { _id: 1, count: -3 }
B. { _id: 1, count: 13 }
C. { _id: 1, count: 7 }
D. { _id: 1, count: 10 }

Solution

  1. Step 1: Understand the initial document

    The document has count equal to 10.
  2. Step 2: Apply the $inc operation with -3

    Subtract 3 from 10: 10 - 3 = 7.
  3. Final Answer:

    { _id: 1, count: 7 } -> Option C
  4. Quick Check:

    10 + (-3) = 7 [OK]
Hint: Subtract by using negative numbers with $inc [OK]
Common Mistakes:
  • Adding instead of subtracting when using negative values
  • Replacing the whole document instead of updating
  • Assuming $inc only increments, not decrements
4. You run this update: db.collection.updateOne({ _id: 2 }, { $inc: { visits: 1 } }) but get an error. What is the most likely cause?
medium
A. The visits field is a string, not a number.
B. The _id field is missing in the query.
C. The $inc operator cannot increment by 1.
D. The collection does not exist.

Solution

  1. Step 1: Understand $inc requirements

    $inc only works on numeric fields. If visits is a string, it causes an error.
  2. Step 2: Check other options

    Missing _id would not cause this error if the document exists. $inc can increment by 1. Collection existence error would be different.
  3. Final Answer:

    The visits field is a string, not a number. -> Option A
  4. Quick Check:

    $inc needs numeric fields [OK]
Hint: Ensure field is numeric before using $inc [OK]
Common Mistakes:
  • Trying to increment string fields
  • Assuming $inc works on any data type
  • Ignoring error messages about field types
5. You want to increment the likes field by 1 for all documents where likes does not exist yet. Which update command will correctly do this without errors?
hard
A. db.collection.updateMany({ likes: { $exists: false } }, { $inc: { likes: 1 } })
B. db.collection.updateMany({}, { $inc: { likes: 1 } })
C. db.collection.updateMany({ likes: null }, { $inc: { likes: 1 } })
D. db.collection.updateMany({}, { $set: { likes: 1 } })

Solution

  1. Step 1: Identify documents without likes

    Use the query { likes: { $exists: false } } to find documents missing the likes field.
  2. Step 2: Use $inc to add 1 to likes

    $inc will create the field with value 1 if it does not exist, so this safely increments missing fields.
  3. Step 3: Check other options

    db.collection.updateMany({}, { $inc: { likes: 1 } }) increments all documents, including those with likes. db.collection.updateMany({ likes: null }, { $inc: { likes: 1 } }) matches documents where likes is null, not missing. db.collection.updateMany({}, { $set: { likes: 1 } }) sets likes to 1, not increments.
  4. Final Answer:

    db.collection.updateMany({ likes: { $exists: false } }, { $inc: { likes: 1 } }) -> Option A
  5. Quick Check:

    Increment missing fields with $exists: false filter [OK]
Hint: Filter missing fields with $exists: false before $inc [OK]
Common Mistakes:
  • Incrementing all documents without filtering
  • Using $set instead of $inc
  • Filtering with null instead of $exists: false