Bird
Raised Fist0
MongoDBquery~5 mins

Arrays in documents in MongoDB - Cheat Sheet & Quick Revision

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
Recall & Review
beginner
What is an array in a MongoDB document?
An array in a MongoDB document is a list of values stored in a single field. It can hold multiple items like numbers, strings, or even other documents.
Click to reveal answer
beginner
How do you store multiple phone numbers for a user in MongoDB?
You store multiple phone numbers as an array inside the user's document, for example: { "phoneNumbers": ["123-4567", "987-6543"] }.
Click to reveal answer
intermediate
How can you query documents where an array contains a specific value?
You can query using the field name and the value inside the array, like: { "tags": "mongodb" } to find documents where the 'tags' array contains 'mongodb'.
Click to reveal answer
beginner
What happens if you add a document with an empty array field?
The document stores the field with an empty array, meaning the field exists but has no items. This is useful to show the field is expected but currently empty.
Click to reveal answer
intermediate
Can arrays in MongoDB hold different data types together?
Yes, arrays in MongoDB can hold mixed data types like strings, numbers, and even nested documents all in the same array.
Click to reveal answer
How do you represent multiple values in a single field in MongoDB?
AUsing multiple fields
BUsing an array
CUsing a string with commas
DUsing a number
Which query finds documents where the 'colors' array contains 'red'?
A{ colors: 'red' }
B{ colors: ['red'] }
C{ colors: { $eq: 'red' } }
D{ colors: { $in: ['red'] } }
Can MongoDB arrays contain nested documents?
AOnly if the document is small
BNo
CYes
DOnly if the array is empty
What does an empty array field in a document mean?
AThe document is invalid
BThe field does not exist
CThe field is null
DThe field exists but has no items
Is it possible to store different data types in the same array in MongoDB?
AYes
BNo
COnly numbers and strings
DOnly documents
Explain how arrays are used in MongoDB documents and give a simple example.
Think about how you store a list of items like phone numbers or tags.
You got /3 concepts.
    Describe how to query documents where an array contains a specific value.
    Remember you can query by just specifying the value inside the array field.
    You got /3 concepts.

      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

      1. Step 1: Understand what arrays do in MongoDB

        Arrays allow storing multiple values inside one document field, like a list.
      2. Step 2: Compare options with array purpose

        Only To store multiple values in a single field correctly describes storing multiple values in one field.
      3. Final Answer:

        To store multiple values in a single field -> Option D
      4. 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

      1. Step 1: Recall MongoDB array syntax

        Arrays in MongoDB are defined using square brackets [] with comma-separated values.
      2. Step 2: Check each option's syntax

        { tags: ["mongodb", "database"] } uses square brackets correctly. Options A, B, and D use incorrect syntax for arrays.
      3. Final Answer:

        { tags: ["mongodb", "database"] } -> Option C
      4. 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

      1. Step 1: Understand MongoDB array matching

        Querying with { scores: 90 } matches documents where the array contains the value 90.
      2. Step 2: Analyze the given document and query

        The scores array includes 90, so the document matches and will be returned.
      3. Final Answer:

        Documents where the scores array contains 90 -> Option A
      4. 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?
      db.collection.updateOne({ _id: 1 }, { $push: { tags: "new" } })
      medium
      A. The query is missing the filter document
      B. The $push operator is used correctly; no error
      C. The $push operator requires the value to be an array
      D. The update document should use $addToSet instead of $push

      Solution

      1. Step 1: Understand $push operator usage

        $push adds a single value to an array field; it accepts a single value, not necessarily an array.
      2. Step 2: Check the query structure

        The filter {_id: 1} is present, and $push is used correctly to add "new" to tags array.
      3. Final Answer:

        The $push operator is used correctly; no error -> Option B
      4. 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"?
      hard
      A. { comments: { $elemMatch: { user: "Bob", text: /Nice/ } } }
      B. { "comments.user": "Bob", "comments.text": /Nice/ }
      C. { comments: { $all: [ { user: "Bob" }, { text: /Nice/ } ] } }
      D. { comments: { $in: [ { user: "Bob", text: /Nice/ } ] } }

      Solution

      1. Step 1: Understand matching objects inside arrays

        $elemMatch matches array elements that satisfy all conditions inside it.
      2. 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/.
      3. Final Answer:

        { comments: { $elemMatch: { user: "Bob", text: /Nice/ } } } -> Option A
      4. Quick Check:

        $elemMatch matches array elements with multiple conditions [OK]
      Hint: Use $elemMatch for multiple conditions on one array element [OK]
      Common Mistakes:
      • Using separate field queries (dot notation) which match conditions across different elements
      • Using $all which matches separate elements, not one
      • Using $in which matches exact elements, not partial fields