Explorer
MongoDB

Set the `verified` field to `true` for all accounts with `status: "active"`. Return all accounts.

Problem Statement

<p>Set the <code>verified</code> field to <code>true</code> for all accounts with <code>status: "active"</code>. Return all accounts.</p>

Examples

Input: accounts collection: +-----+------------+----------+----------+ | _id | email | status | verified | +-----+------------+----------+----------+ | 1 | a@test.com | active | false | | 2 | b@test.com | inactive | false | | 3 | c@test.com | active | false | +-----+------------+----------+----------+

Output: +-----+------------+----------+----------+ | _id | email | status | verified | +-----+------------+----------+----------+ | 1 | a@test.com | active | true | | 2 | b@test.com | inactive | false | | 3 | c@test.com | active | true | +-----+------------+----------+----------+

Explanation: The target document is modified according to the update operators and the updated document is returned.

Complexity

Time Complexity: -

Space Complexity: -

Hints

šŸ’” Hint 1: Use db.<collection>.find(<filter>) to query the documents in the collection. šŸ’” Hint 2: Pass an empty object {} to retrieve all documents, or specify key-value pairs for exact matching. šŸ’” Hint 3: Chain .toArray() to resolve the MongoDB cursor into a JavaScript array: return db.<collection>.find(...).toArray();

Editorial & Approach

Problem Overview & Intuition

To solve "Update Many Documents ($set)", we query the MongoDB document store. The goal is to set the `verified` field to `true` for all accounts with `status: "active"`. return all accounts. Using a targeted find query, the database engine filters and structures the BSON documents efficiently.

Step-by-Step Approach

  1. Identify Target Collection: Access the collection through the db instance.
  2. Construct Query / Pipeline: Build the query filter with appropriate comparison operators.
  3. Resolve Cursor: Invoke .toArray() to transform the query cursor into the required array of documents.

Optimal Implementation (MongoDB)

function solve(db) {
  db.accounts.updateMany({ status: "active" }, { $set: { verified: true } });
  return db.accounts.find({}).toArray();
}

Complexity Analysis

Time Complexity O(N) collection scan (O(log N) if index is present on filtered fields).
Space Complexity O(K) where K is the number of returned documents in memory.

Key Considerations & Edge Cases

  • Empty Collections: If no documents match, the query cleanly returns an empty array [].
  • Missing / NULL Fields: Missing fields in documents are handled safely without throwing runtime exceptions.
  • Type Coercion: BSON types (ObjectId, Numbers, Strings) are compared strictly according to MongoDB specifications.

Update Many Documents ($set)

Easy

Set the verified field to true for all accounts with status: "active". Return all accounts.

Example Scenarios
1Example 1
Input:
accounts collection
_idemailstatusverified
1a@test.comactivefalse
2b@test.cominactivefalse
3c@test.comactivefalse
Output:
_idemailstatusverified
1a@test.comactivetrue
2b@test.cominactivefalse
3c@test.comactivetrue
Explanation:

The target document is modified according to the update operators and the updated document is returned.

MongoDB Editor
Loading Editor...
Query Results (JSON)

Run your MongoDB code to see results here.