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 Arrays in MongoDB Documents
📖 Scenario: You are managing a small library database. Each book document contains information about the book and a list of authors who contributed to it.
🎯 Goal: Create a MongoDB document for a book with an array of authors, add a new author to the array, and then query the document to find books with a specific author.
📋 What You'll Learn
Create a book document with an authors array containing exact author names
Add a new author to the authors array using an update operation
Query the collection to find books where the authors array contains a specific author
💡 Why This Matters
🌍 Real World
Managing collections of items with multiple related values, like books with multiple authors, products with multiple tags, or users with multiple roles.
💼 Career
Understanding how to work with arrays in MongoDB documents is essential for backend developers and database administrators who design and query NoSQL databases.
Progress0 / 4 steps
1
Create a book document with an authors array
Insert a document into the books collection with the following fields: title set to "Learning MongoDB", year set to 2023, and an authors array containing exactly these strings: "Alice Johnson" and "Bob Smith".
MongoDB
Hint
Use insertOne to add a document with an authors array.
2
Add a new author to the authors array
Use the updateOne method on the books collection to add the author "Carol White" to the authors array of the book with title "Learning MongoDB". Use the $push operator.
MongoDB
Hint
Use updateOne with a filter on title and the $push operator to add to the array.
3
Query books by author in the authors array
Write a query using find on the books collection to find all books where the authors array contains the author "Carol White".
MongoDB
Hint
Use find with a filter on the authors array to match the author.
4
Complete the document with an _id field and verify structure
Ensure the book document includes the _id field automatically created by MongoDB and that the authors array contains exactly these three authors: "Alice Johnson", "Bob Smith", and "Carol White". The code should include the insert, update, and find operations as before.
MongoDB
Hint
The _id field is added automatically by MongoDB when inserting a document.
Practice
(1/5)
1. What is the main purpose of using arrays in MongoDB documents?
easy
A. To index documents automatically
B. To create multiple documents at once
C. To enforce data types on fields
D. To store multiple values in a single field
Solution
Step 1: Understand what arrays do in MongoDB
Arrays allow storing multiple values inside one document field, like a list.
Step 2: Compare options with array purpose
Only To store multiple values in a single field correctly describes storing multiple values in one field.
Final Answer:
To store multiple values in a single field -> Option D
Quick Check:
Arrays = multiple values in one field [OK]
Hint: Arrays hold many values in one field [OK]
Common Mistakes:
Thinking arrays create multiple documents
Confusing arrays with indexing
Believing arrays enforce data types
2. Which of the following is the correct way to define an array field named tags in a MongoDB document?
easy
A. { tags: "mongodb, database" }
B. { tags: { "mongodb", "database" } }
C. { tags: ["mongodb", "database"] }
D. { tags: ("mongodb", "database") }
Solution
Step 1: Recall MongoDB array syntax
Arrays in MongoDB are defined using square brackets [] with comma-separated values.
Step 2: Check each option's syntax
{ tags: ["mongodb", "database"] } uses square brackets correctly. Options A, B, and D use incorrect syntax for arrays.
Final Answer:
{ tags: ["mongodb", "database"] } -> Option C
Quick Check:
Arrays use [] brackets [OK]
Hint: Arrays use square brackets [] in MongoDB [OK]
Common Mistakes:
Using quotes instead of brackets for arrays
Using curly braces {} which define objects
Using parentheses () which are invalid for arrays
3. Given the document { name: "Alice", scores: [85, 90, 78] }, what will the query db.collection.find({ scores: 90 }) return?
medium
A. Documents where the scores array contains 90
B. Documents where scores equals exactly 90
C. Documents where scores is greater than 90
D. No documents because 90 is inside an array
Solution
Step 1: Understand MongoDB array matching
Querying with { scores: 90 } matches documents where the array contains the value 90.
Step 2: Analyze the given document and query
The scores array includes 90, so the document matches and will be returned.
Final Answer:
Documents where the scores array contains 90 -> Option A
Quick Check:
Query matches array elements directly [OK]
Hint: Query value matches any array element [OK]
Common Mistakes:
Thinking query matches whole array only
Assuming query checks for greater than
Believing arrays block direct value matching
4. What is wrong with this MongoDB update query to add a new tag to the tags array?
C. The $push operator requires the value to be an array
D. The update document should use $addToSet instead of $push
Solution
Step 1: Understand $push operator usage
$push adds a single value to an array field; it accepts a single value, not necessarily an array.
Step 2: Check the query structure
The filter {_id: 1} is present, and $push is used correctly to add "new" to tags array.
Final Answer:
The $push operator is used correctly; no error -> Option B
Quick Check:
$push adds single values to arrays [OK]
Hint: $push accepts single values, no array needed [OK]
Common Mistakes:
Thinking $push needs an array value
Confusing $push with $addToSet for uniqueness
Missing the filter document in update
5. You have documents with a field comments which is an array of objects like { user: "Bob", text: "Nice!" }. How do you write a query to find documents where comments contains an object with user equal to "Bob" and text containing the word "Nice"?
$elemMatch matches array elements that satisfy all conditions inside it.
Step 2: Analyze each option for correct syntax
{ comments: { $elemMatch: { user: "Bob", text: /Nice/ } } } uses $elemMatch with both conditions together, correctly matching one object with user "Bob" and text matching /Nice/.