Bird
Raised Fist0
MongoDBquery~20 mins

Election process concept in MongoDB - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Election Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ query_result
intermediate
2:00remaining
Find candidates with more than 1000 votes
Given a collection candidates with documents containing name and votes, which query returns all candidates with votes greater than 1000?
MongoDB
db.candidates.find({ votes: { $gt: 1000 } })
Adb.candidates.find({ votes: { $gt: 1000 } })
Bdb.candidates.find({ votes: { $lt: 1000 } })
Cdb.candidates.find({ votes: { $gte: 1000 } })
Ddb.candidates.find({ votes: 1000 })
Attempts:
2 left
💡 Hint
Use the $gt operator to find values greater than a number.
❓ query_result
intermediate
2:00remaining
Count total votes for all candidates
Which aggregation pipeline correctly sums the votes field for all candidates in the candidates collection?
MongoDB
db.candidates.aggregate([{ $group: { _id: null, totalVotes: { $sum: "$votes" } } }])
Adb.candidates.aggregate([{ $group: { _id: "$votes", totalVotes: { $count: {} } } }])
Bdb.candidates.aggregate([{ $sum: "$votes" }])
Cdb.candidates.aggregate([{ $group: { _id: null, totalVotes: { $avg: "$votes" } } }])
Ddb.candidates.aggregate([{ $group: { _id: null, totalVotes: { $sum: "$votes" } } }])
Attempts:
2 left
💡 Hint
Use $group stage with $sum accumulator to add values.
📝 Syntax
advanced
2:00remaining
Identify the syntax error in this update query
What error does this MongoDB update query produce?
db.candidates.updateOne({ name: "Alice" }, { $set: { votes: votes + 1 } })
ASyntaxError: Cannot use field name 'votes' directly in update document
BTypeError: votes is undefined
CNo error, query runs successfully
DRuntimeError: Invalid update operator
Attempts:
2 left
💡 Hint
In update documents, you cannot use field names as variables directly.
❓ query_result
advanced
2:00remaining
Find the candidate with the highest votes
Which query returns the candidate document with the highest number of votes?
MongoDB
db.candidates.find().sort({ votes: -1 }).limit(1)
Adb.candidates.aggregate([{ $sort: { votes: -1 } }, { $limit: 1 }])
Bdb.candidates.aggregate([{ $sort: { votes: 1 } }, { $limit: 1 }])
Cdb.candidates.find().sort({ votes: -1 }).limit(1)
Ddb.candidates.find().sort({ votes: 1 }).limit(1)
Attempts:
2 left
💡 Hint
Sort descending by votes and limit to 1 document.
🧠 Conceptual
expert
3:00remaining
Election process: Ensuring vote uniqueness
In a MongoDB collection votes where each document records a voterId and candidateId, which approach best ensures that each voter can only vote once?
AUse a compound index on <code>voterId</code> and <code>candidateId</code> without uniqueness
BCreate a unique index on the <code>voterId</code> field
CManually check for existing votes before inserting a new vote document
DAllow multiple votes and filter duplicates in application code
Attempts:
2 left
💡 Hint
Indexes can enforce uniqueness at the database level.

Practice

(1/5)
1. What is the main purpose of an election in a MongoDB replica set?
easy
A. To select a primary server that manages writes
B. To delete old data from the database
C. To backup the database automatically
D. To create new collections in the database

Solution

  1. Step 1: Understand the role of election in MongoDB

    In a replica set, election chooses a primary server to handle write operations.
  2. Step 2: Identify the correct purpose

    The primary server manages writes and coordinates data replication.
  3. Final Answer:

    To select a primary server that manages writes -> Option A
  4. Quick Check:

    Election = select primary server [OK]
Hint: Election picks the primary server for writes [OK]
Common Mistakes:
  • Thinking election deletes data
  • Confusing election with backup process
  • Believing election creates collections
2. Which MongoDB command shows the current election status in a replica set?
easy
A. db.showElection()
B. db.electionStatus()
C. rs.status()
D. rs.election()

Solution

  1. Step 1: Recall the command to check replica set status

    The command rs.status() shows detailed replica set info including election status.
  2. Step 2: Verify other options

    Other commands like db.showElection() or rs.election() do not exist in MongoDB.
  3. Final Answer:

    rs.status() -> Option C
  4. Quick Check:

    Check election with rs.status() [OK]
Hint: Use rs.status() to see election info [OK]
Common Mistakes:
  • Using non-existent commands
  • Confusing db commands with rs commands
  • Trying to use election-specific commands that don't exist
3. Given the following output from rs.status(), which member is currently the primary?
{
  "members": [
    {"_id": 0, "stateStr": "SECONDARY"},
    {"_id": 1, "stateStr": "PRIMARY"},
    {"_id": 2, "stateStr": "SECONDARY"}
  ]
}
medium
A. Member with _id 0
B. No primary elected yet
C. Member with _id 2
D. Member with _id 1

Solution

  1. Step 1: Read the stateStr values for each member

    Member with _id 1 has stateStr "PRIMARY", others are "SECONDARY".
  2. Step 2: Identify the primary member

    The member with stateStr "PRIMARY" is the current primary server.
  3. Final Answer:

    Member with _id 1 -> Option D
  4. Quick Check:

    Primary = stateStr "PRIMARY" member [OK]
Hint: Primary member has stateStr 'PRIMARY' in rs.status() [OK]
Common Mistakes:
  • Choosing a secondary member
  • Assuming no primary if unsure
  • Ignoring the stateStr field
4. You run rs.status() but get an error: not authorized on admin to execute command. What is the likely cause?
medium
A. You lack proper user permissions to run rs.status()
B. You are not connected to the primary server
C. The replica set is not initialized
D. The command rs.status() is misspelled

Solution

  1. Step 1: Understand the error message

    The error says 'not authorized', meaning permission is denied.
  2. Step 2: Match error to cause

    Lack of user permissions to run the command causes this error, not connection or spelling issues.
  3. Final Answer:

    You lack proper user permissions to run rs.status() -> Option A
  4. Quick Check:

    Authorization error = permission issue [OK]
Hint: Authorization errors mean missing user permissions [OK]
Common Mistakes:
  • Assuming connection problem
  • Thinking replica set not initialized
  • Blaming command spelling
5. In a MongoDB replica set with 5 members, what minimum number of votes is needed to elect a primary during an election?
hard
A. 2 votes
B. 3 votes
C. 4 votes
D. 5 votes

Solution

  1. Step 1: Recall election voting rules in MongoDB

    Primary election requires a majority of votes from members.
  2. Step 2: Calculate majority for 5 members

    Majority is more than half, so 3 out of 5 votes are needed.
  3. Final Answer:

    3 votes -> Option B
  4. Quick Check:

    Majority of 5 = 3 votes [OK]
Hint: Majority votes needed: half members + 1 [OK]
Common Mistakes:
  • Choosing half votes instead of majority
  • Thinking all members must vote
  • Confusing votes with number of members
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard