Bird
Raised Fist0
MongoDBquery~20 mins

BSON data types overview in MongoDB - Practice Problems & Coding Challenges

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
Challenge - 5 Problems
🎖️
BSON Mastery Badge
Get all challenges correct to earn this badge!
Test your skills under time pressure!
query_result
intermediate
2:00remaining
What is the output of this BSON document query?
Given a MongoDB collection with documents containing a field value of type Int32, what will be the output of this query?

db.collection.find({ value: { $type: 16 } })

Note: $type: 16 filters documents where value is of BSON type Int32.
MongoDB
db.collection.find({ value: { $type: 16 } })
AReturns documents where 'value' is a 32-bit integer (Int32).
BReturns documents where 'value' is a 64-bit integer (Int64).
CReturns documents where 'value' is a double (floating point).
DReturns documents where 'value' is a string.
Attempts:
2 left
💡 Hint
Check the BSON type number for Int32 in MongoDB documentation.
🧠 Conceptual
intermediate
1:30remaining
Which BSON data type is used to store date and time?
In BSON, which data type is used to store date and time values?
ADate
BTimestamp
CString
DObjectId
Attempts:
2 left
💡 Hint
Think about the type that stores calendar dates and times.
📝 Syntax
advanced
1:30remaining
Identify the BSON type code for a 64-bit integer
Which BSON type number corresponds to a 64-bit integer (Int64) in MongoDB?
A16
B18
C1
D2
Attempts:
2 left
💡 Hint
Int32 is 16, double is 1, string is 2.
🔧 Debug
advanced
2:00remaining
Why does this query return no results?
A user runs this query to find documents with a field score of type double:

db.collection.find({ score: { $type: 1 } })

But no documents are returned, even though some documents have score as a floating-point number. What is the most likely reason?
AThe query syntax is incorrect; $type expects a string, not a number.
BThe collection is empty.
CThe <code>score</code> field is stored as Int32, not double.
DThe <code>score</code> field is stored as string, not double.
Attempts:
2 left
💡 Hint
Check the actual BSON type of the score field in documents.
optimization
expert
2:30remaining
Optimizing queries filtering by BSON type
You want to optimize a MongoDB query that filters documents by the BSON type of a field data. Which approach is the most efficient for large collections?
AUse <code>{ data: { $exists: true } }</code> and then check type in application.
BUse <code>{ $where: function() { return typeof this.data === 'number'; } }</code>.
CUse <code>{ data: { $type: <type_number> } }</code> with an index on <code>data</code>.
DScan all documents and filter in application code after fetching.
Attempts:
2 left
💡 Hint
Indexes help queries run faster when used properly.

Practice

(1/5)
1. Which BSON data type is used to store a unique identifier for documents in MongoDB?
easy
A. Date
B. String
C. ObjectId
D. Boolean

Solution

  1. Step 1: Understand the purpose of ObjectId

    ObjectId is a special BSON type designed to uniquely identify documents in MongoDB collections.
  2. Step 2: Compare with other types

    String stores text, Boolean stores true/false, Date stores time values. None of these uniquely identify documents like ObjectId.
  3. Final Answer:

    ObjectId -> Option C
  4. Quick Check:

    BSON unique ID = ObjectId [OK]
Hint: Unique document IDs in MongoDB are ObjectIds [OK]
Common Mistakes:
  • Confusing String with ObjectId for unique IDs
  • Thinking Boolean can identify documents
  • Assuming Date stores unique identifiers
2. Which of the following is the correct BSON data type to store a true or false value in MongoDB?
easy
A. Integer
B. Boolean
C. String
D. Array

Solution

  1. Step 1: Identify the BSON type for true/false

    Boolean is the BSON data type used to store true or false values.
  2. Step 2: Eliminate other types

    Integer stores numbers, String stores text, Array stores lists. None represent true/false directly.
  3. Final Answer:

    Boolean -> Option B
  4. Quick Check:

    True/false = Boolean [OK]
Hint: True or false values use Boolean type [OK]
Common Mistakes:
  • Using Integer for true/false
  • Confusing String with Boolean
  • Choosing Array for single true/false
3. Given the following MongoDB document:
{ "name": "Alice", "age": 30, "member": true }
What BSON data types are used for the fields name, age, and member respectively?
medium
A. String, Boolean, Integer
B. String, String, Boolean
C. ObjectId, Integer, Boolean
D. String, Integer, Boolean

Solution

  1. Step 1: Identify each field's value type

    "name" is text, so String; "age" is a number, so Integer; "member" is true/false, so Boolean.
  2. Step 2: Match with options

    String, Integer, Boolean matches String, Integer, Boolean in order. Others mismatch types.
  3. Final Answer:

    String, Integer, Boolean -> Option D
  4. Quick Check:

    Text, number, true/false = String, Integer, Boolean [OK]
Hint: Match field values to String, Integer, Boolean types [OK]
Common Mistakes:
  • Confusing Integer with String for numbers
  • Mixing Boolean and Integer types
  • Assuming ObjectId for name field
4. You try to insert this document into MongoDB:
{ "date": "2023-01-01" }
But you want the date field to be stored as a BSON Date type. What is the issue and how to fix it?
medium
A. The date is a string; convert it to BSON Date using ISODate()
B. The date is missing; add a date field
C. The date format is invalid; use YYYY/DD/MM instead
D. MongoDB does not support Date type; use String instead

Solution

  1. Step 1: Identify the current data type of date field

    The date is stored as a string because it is enclosed in quotes.
  2. Step 2: Convert string to BSON Date type

    Use MongoDB's ISODate() function to store the date as BSON Date type.
  3. Final Answer:

    The date is a string; convert it to BSON Date using ISODate() -> Option A
  4. Quick Check:

    Date string needs ISODate() for BSON Date [OK]
Hint: Use ISODate() to store dates, not strings [OK]
Common Mistakes:
  • Assuming string is automatically Date
  • Changing date format incorrectly
  • Believing MongoDB lacks Date type
5. You want to store a list of tags for a blog post in MongoDB. Which BSON data type should you use to store multiple tag strings together?
hard
A. Array
B. ObjectId
C. Boolean
D. Date

Solution

  1. Step 1: Understand the need to store multiple values

    A list of tags means multiple values grouped together.
  2. Step 2: Identify BSON type for multiple values

    Array is the BSON type used to store lists or collections of values.
  3. Final Answer:

    Array -> Option A
  4. Quick Check:

    Multiple values = Array type [OK]
Hint: Use Array type for lists of values [OK]
Common Mistakes:
  • Using ObjectId for lists
  • Choosing Boolean for multiple tags
  • Trying to store list as Date