0
0
MongoDBquery~30 mins

$size operator for array length in MongoDB - Mini Project: Build & Apply

Choose your learning style9 modes available
$size Operator for Array Length in MongoDB
📖 Scenario: You are managing a database for a book club. Each book document stores the title and a list of members who have read it.
🎯 Goal: Build a MongoDB query that finds books with exactly 3 readers using the $size operator.
📋 What You'll Learn
Create a collection named books with documents containing title and readers array fields.
Insert 3 book documents with specific titles and readers arrays.
Write a query using the $size operator to find books with exactly 3 readers.
Add a projection to show only the title field in the query result.
💡 Why This Matters
🌍 Real World
Managing book club data where you want to find books read by a specific number of members.
💼 Career
Filtering documents by array length is common in MongoDB for tasks like user activity tracking, inventory management, and social media data analysis.
Progress0 / 4 steps
1
Create the books collection with 3 documents
Insert 3 documents into the books collection with these exact entries: { title: "The Hobbit", readers: ["Alice", "Bob", "Charlie"] }, { title: "1984", readers: ["Dave", "Eve"] }, and { title: "Dune", readers: ["Frank", "Grace", "Heidi"] }.
MongoDB
Need a hint?

Use db.books.insertMany([...]) to add multiple documents at once.

2
Set the target array length to 3
Create a variable called targetLength and set it to 3 to represent the number of readers to filter by.
MongoDB
Need a hint?

Use const targetLength = 3 to store the number 3.

3
Write a query using $size to find books with 3 readers
Write a MongoDB query using db.books.find() with a filter that uses { readers: { $size: targetLength } } to find books where the readers array length is exactly 3.
MongoDB
Need a hint?

Use { readers: { $size: targetLength } } inside find() to filter by array length.

4
Add a projection to show only the title field
Modify the query to include a projection that returns only the title field by adding { title: 1, _id: 0 } as the second argument to db.books.find().
MongoDB
Need a hint?

Add { title: 1, _id: 0 } as the second argument to find() to show only titles.