Bird
Raised Fist0
MongoDBquery~5 mins

BSON data types overview in MongoDB

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
Introduction

BSON data types help MongoDB store and organize different kinds of information clearly and efficiently.

When you want to save numbers, text, or dates in a MongoDB database.
When you need to store complex data like lists or nested objects.
When you want to keep track of true/false values in your data.
When you need to store special data like binary files or unique IDs.
When you want to ensure your data is stored in a way MongoDB understands.
Syntax
MongoDB
BSON data types include:
- String
- Integer
- Double
- Boolean
- Date
- Array
- Object
- ObjectId
- Binary Data
- Null
- Regular Expression
- Timestamp
- Decimal128
- MinKey
- MaxKey
BSON stands for Binary JSON, a format MongoDB uses to store data.
Each data type helps MongoDB know how to handle and search your data.
Examples
A simple document with String, Integer, and Boolean types.
MongoDB
{ name: "Alice", age: 30, active: true }
Shows an Array of Integers and a Date type.
MongoDB
{ scores: [85, 90, 78], joined: ISODate("2023-01-01T00:00:00Z") }
Uses ObjectId for unique ID and Binary Data for storing files.
MongoDB
{ _id: ObjectId("507f1f77bcf86cd799439011"), data: BinData(0, "...base64...") }
Sample Program

This example inserts a user document with various BSON types and then retrieves it.

MongoDB
db.users.insertOne({
  _id: ObjectId("507f1f77bcf86cd799439011"),
  name: "Bob",
  age: 25,
  active: true,
  scores: [88, 92, 79],
  joined: ISODate("2024-01-15T10:00:00Z"),
  profilePic: BinData(0, "VGhpcyBpcyBhIHRlc3Q=")
})

// Then find the document
 db.users.find({ name: "Bob" })
OutputSuccess
Important Notes

BSON types allow MongoDB to store data efficiently and support rich queries.

Using the right data type helps keep your data organized and easy to work with.

ObjectId is a special type used as a unique identifier for documents.

Summary

BSON data types define how MongoDB stores different kinds of data.

Common types include String, Integer, Boolean, Date, Array, and ObjectId.

Choosing the correct type helps MongoDB manage and query your data well.

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