Bird
Raised Fist0
MongoDBquery~30 mins

Boolean and null types in MongoDB - Mini Project: Build & Apply

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
Working with Boolean and Null Types in MongoDB
📖 Scenario: You are managing a small online store database. You want to keep track of whether products are in stock and if they have any special discount offers. Some products might not have discount information yet.
🎯 Goal: Create a MongoDB collection with product documents that use Boolean and null types correctly. Then, write queries to find products based on these Boolean and null values.
📋 What You'll Learn
Create a collection named products with documents containing name, inStock (Boolean), and discount (Boolean or null).
Insert exactly three products with specified values for inStock and discount.
Write a query to find all products that are in stock (inStock is true).
Write a query to find all products where discount is null (no discount information).
💡 Why This Matters
🌍 Real World
Online stores often track product availability and discount status using Boolean and null values in their databases.
💼 Career
Understanding how to use Boolean and null types in MongoDB is essential for database roles that manage product inventories and sales data.
Progress0 / 4 steps
1
Create the products collection with three product documents
Create a MongoDB collection called products and insert these three documents exactly: { name: "Laptop", inStock: true, discount: false }, { name: "Headphones", inStock: false, discount: null }, { name: "Mouse", inStock: true, discount: true }.
MongoDB
Hint

Use db.products.insertMany() with an array of objects for the three products.

2
Create a query variable to find products that are in stock
Create a variable called inStockQuery that holds a MongoDB query object to find products where inStock is true.
MongoDB
Hint

Set inStockQuery to an object with inStock: true.

3
Create a query variable to find products with null discount
Create a variable called nullDiscountQuery that holds a MongoDB query object to find products where discount is null.
MongoDB
Hint

Set nullDiscountQuery to an object with discount: null.

4
Write queries to find products using the query variables
Write two queries using db.products.find() with the variables inStockQuery and nullDiscountQuery to find products in stock and products with null discount, respectively. Assign the results to inStockProducts and nullDiscountProducts.
MongoDB
Hint

Use db.products.find() with the query variables and assign to the specified variables.

Practice

(1/5)
1. What does the Boolean type represent in MongoDB?
easy
A. Text strings
B. Numbers only
C. True or false values
D. Dates and times

Solution

  1. Step 1: Understand Boolean type meaning

    Boolean type stores only two possible values: true or false.
  2. Step 2: Compare with other data types

    Numbers, strings, and dates are different types, not Boolean.
  3. Final Answer:

    True or false values -> Option C
  4. Quick Check:

    Boolean = true/false [OK]
Hint: Boolean means true or false only [OK]
Common Mistakes:
  • Confusing Boolean with numbers
  • Thinking Boolean stores text
  • Mixing Boolean with date types
2. Which of the following is the correct way to store a null value in a MongoDB document?
easy
A. { "field": "null" }
B. { "field": false }
C. { "field": 0 }
D. { "field": null }

Solution

  1. Step 1: Identify null value syntax

    In MongoDB, null is stored as the keyword null without quotes.
  2. Step 2: Check other options

    "null" is a string, 0 is a number, false is Boolean, so they are incorrect.
  3. Final Answer:

    { "field": null } -> Option D
  4. Quick Check:

    Null stored as null keyword [OK]
Hint: Use null without quotes for null values [OK]
Common Mistakes:
  • Using "null" as a string instead of null
  • Confusing 0 or false with null
  • Putting null in quotes
3. Given the MongoDB collection documents:
{ "active": true }, { "active": false }, { "active": null }

What will the query db.collection.find({ "active": { $eq: null } }) return?
medium
A. Documents where active is true
B. Documents where active is null
C. Documents where active is false
D. No documents

Solution

  1. Step 1: Understand $eq: null behavior

    In MongoDB, querying with { field: { $eq: null } } matches documents where field exists and is exactly null. It does not match missing fields.
  2. Step 2: Apply to given documents

    Only the document with "active": null matches; documents with true or false do not.
  3. Final Answer:

    Documents where active is null -> Option B
  4. Quick Check:

    $eq: null matches existing null [OK]
Hint: $eq: null matches existing null fields [OK]
Common Mistakes:
  • Thinking $eq: null matches missing fields
  • Confusing false or true as null
  • Expecting no results
4. You wrote this MongoDB query to find documents where isActive is false:
db.users.find({ isActive: False })

But it returns an error. What is the problem?
medium
A. Boolean false must be lowercase: false
B. Field name should be in quotes
C. Use $eq operator for Boolean
D. MongoDB does not support Boolean queries

Solution

  1. Step 1: Check Boolean syntax in MongoDB queries

    Boolean values in MongoDB queries must be lowercase: true or false.
  2. Step 2: Identify error cause

    Using capitalized False causes a syntax error because it's not recognized.
  3. Final Answer:

    Boolean false must be lowercase: false -> Option A
  4. Quick Check:

    Boolean literals are lowercase in queries [OK]
Hint: Use lowercase true/false in queries [OK]
Common Mistakes:
  • Using capitalized True or False
  • Omitting quotes on field names (allowed but not error)
  • Thinking $eq is required for Boolean
5. You want to find documents where the field verified is either false or null. Which MongoDB query correctly finds these documents?
hard
A. { verified: { $in: [false, null] } }
B. { verified: false }
C. { verified: { $ne: true } }
D. { verified: { $exists: false } }

Solution

  1. Step 1: Understand the requirement

    We want documents where verified is false OR null.
  2. Step 2: Analyze each option

    { verified: false } matches only false, not null. { verified: { $ne: true } } matches existing fields != true (false, null, other values), but not missing fields and includes unwanted values. { verified: { $exists: false } } matches only missing, not false. { verified: { $in: [false, null] } } uses $in to match false or null exactly.
  3. Final Answer:

    { verified: { $in: [false, null] } } -> Option A
  4. Quick Check:

    $in matches multiple values including null [OK]
Hint: Use $in with false and null to match both [OK]
Common Mistakes:
  • Using only false without null
  • Using $exists which misses false
  • Using $ne: true which matches unwanted values