Question 206 of 982

Quick Answer

The correct answer is B) WHERE c.score > 5000 AND ARRAY_CONTAINS(c.inventory, {name: 'sword'}, true) because ARRAY_CONTAINS with the third parameter set to true performs a partial match against nested objects, checking if any element in the inventory array has a name property equal to 'sword' without requiring an exact match on all fields. This is the standard and most efficient way to query arrays of objects in Cosmos DB SQL, as it directly filters documents based on a property within an array element, avoiding the complexity of JOINs or subqueries. On the DP-900 exam, this tests your understanding of how to query nested JSON structures, a common scenario for gaming or e-commerce data models. A frequent trap is forgetting the true parameter, which defaults to false and would require an exact match on the entire object, including all properties. Memory tip: think of ARRAY_CONTAINS as a "partial search" when you add true—it’s like asking, "Does any item in this list have this one attribute?"

DP-900 Practice Question: Describe considerations for working with non-relational data on Azure

This DP-900 practice question tests your understanding of describe considerations for working with non-relational data on azure. Match the stated requirement to the specific cloud service, access model, or configuration option — many options are valid in isolation but not for this scenario. After answering, compare your reasoning against the explanation and wrong-answer breakdown below. Once you have made your selection, read the full explanation to reinforce the concept and understand why each distractor is designed to mislead on exam day.

A mobile gaming company stores player data in Azure Cosmos DB using the Core (SQL) API. Each document contains fields: playerId, nickname, score, level, and an inventory array of item objects (each with name and type). The company wants to query all players whose score is above 5000 and who have a specific item (e.g., a sword) in their inventory. Which query clause should they use?

Question 1mediummultiple choice
Full question →

Answer choices

Why each option matters

Answer the question above first, then reveal the full breakdown to understand why each option is right or wrong.

Correct answer & explanation

B) WHERE c.score > 5000 AND ARRAY_CONTAINS(c.inventory, {name: 'sword'}, true)

Option B is correct because ARRAY_CONTAINS with the third parameter set to 'true' performs a partial match, checking if any element in the inventory array has a 'name' property equal to 'sword'. This is the standard way to query for an item within an array of objects in Azure Cosmos DB's SQL API, as it correctly handles the nested structure without requiring a JOIN or subquery.

Key principle: Answer the scenario, not the keyword: identify the specific constraint before choosing the most familiar-sounding option.

Answer analysis

Option-by-option breakdown

For each option: why learners choose it and why it is or isn't the right answer here.

  • A) WHERE c.score > 5000 AND c.inventory.some(item => item.name == 'sword')

    Why it's wrong here

    This syntax is from MongoDB, not Cosmos DB SQL API. Cosmos DB uses ARRAY_CONTAINS or JOIN with WHERE clauses.

  • B) WHERE c.score > 5000 AND ARRAY_CONTAINS(c.inventory, {name: 'sword'}, true)

    Why this is correct

    ARRAY_CONTAINS checks if the array contains an object that matches the specified properties. The third parameter 'true' enables partial matching, so it finds items where name equals 'sword' regardless of other fields.

    Related concept

    Read the scenario before looking for a memorised answer.

  • C) WHERE c.score > 5000 AND c.inventory.name == 'sword'

    Why it's wrong here

    This is invalid because inventory is an array, and accessing .name on an array is not allowed. This would cause a query error.

  • D) WHERE c.score > 5000 AND 'sword' IN c.inventory

    Why it's wrong here

    The IN operator only works with scalar values or subqueries, not with arrays of objects. It would not match the object structure.

Common exam traps

Common exam trap: answer the scenario, not the keyword

The trap here is that candidates often confuse SQL array syntax (like IN or direct property access) with the specialized ARRAY_CONTAINS function required for querying arrays of objects in Cosmos DB, or they mistakenly apply JavaScript array methods that are not supported in the SQL API.

Detailed technical explanation

How to think about this question

ARRAY_CONTAINS in Cosmos DB SQL API supports three overloads: checking for exact match (default), partial match (with true as third parameter), and checking for a scalar value. The partial match mode is essential for querying nested properties within array elements without needing a JOIN, which would be less efficient. Under the hood, ARRAY_CONTAINS uses index seeks when the array elements are indexed, making it performant for large datasets.

KKey Concepts to Remember

  • Read the scenario before looking for a memorised answer.
  • Find the constraint that changes the correct option.
  • Eliminate answers that are true in general but not in this case.

TExam Day Tips

  • Watch for words such as best, first, most likely and least administrative effort.
  • Review why wrong options are wrong, not only why the correct option is correct.

Key takeaway

Answer the scenario, not the keyword: identify the specific constraint before choosing the most familiar-sounding option.

Real-world example

How this comes up in practice

A media company stores terabytes of video archives that are accessed once a year for audit purposes. Moving these objects to a cold storage tier (Azure Archive, S3 Glacier, or Google Nearline) costs a fraction of hot storage. Questions like this test whether you understand storage tiers, access frequency tradeoffs, and retrieval latency requirements.

What to study next

Got this wrong? Here's your next step.

Identify which exam domain this question belongs to, review the core concept, then practise similar questions from the same domain.

Related practice questions

Related DP-900 practice-question pages

Use these pages to review the topic behind this question. This is how one missed question becomes focused revision.

Practice this exam

Start a free DP-900 practice session

Short sessions build daily habit. Longer sessions build exam-day stamina. Try a timed session to simulate real conditions.

FAQ

Questions learners often ask

What does this DP-900 question test?

Describe considerations for working with non-relational data on Azure — This question tests Describe considerations for working with non-relational data on Azure — Read the scenario before looking for a memorised answer..

What is the correct answer to this question?

The correct answer is: B) WHERE c.score > 5000 AND ARRAY_CONTAINS(c.inventory, {name: 'sword'}, true) — Option B is correct because ARRAY_CONTAINS with the third parameter set to 'true' performs a partial match, checking if any element in the inventory array has a 'name' property equal to 'sword'. This is the standard way to query for an item within an array of objects in Azure Cosmos DB's SQL API, as it correctly handles the nested structure without requiring a JOIN or subquery.

What should I do if I get this DP-900 question wrong?

Identify which exam domain this question belongs to, review the core concept, then practise similar questions from the same domain.

What is the key concept behind this question?

Read the scenario before looking for a memorised answer.

About these practice questions

Courseiva creates original exam-style practice questions with explanations and wrong-answer analysis. It does not publish real exam questions, exam dumps, or protected exam content. Learn why practice questions differ from exam dumps →

How Courseiva writes practice questions · Editorial policy

Last reviewed: Jun 11, 2026

Question Discussion

Share a tip, memory trick, or ask about the reasoning behind this question. Do not post real exam questions, leaked content, braindumps, or copyrighted exam material. Comments are moderated and may be removed without notice.

Loading comments…

Sign in to join the discussion.

This DP-900 practice question is part of Courseiva's free Microsoft certification practice question bank. Courseiva provides original exam-style practice questions with explanations, topic-based practice, mock exams, readiness tracking, and study analytics to help learners prepare for the DP-900 exam.