0
0
MongoDBquery~20 mins

Soft delete pattern in MongoDB - Practice Problems & Coding Challenges

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
Soft Delete Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
query_result
intermediate
2:00remaining
Find active users excluding soft deleted ones

Given a MongoDB collection users where soft deleted documents have deletedAt field set to a timestamp, which query returns only active (not soft deleted) users?

MongoDB
db.users.find({ deletedAt: { $exists: false } })
Adb.users.find({ deletedAt: { $exists: true } })
Bdb.users.find({ deletedAt: null })
Cdb.users.find({ deletedAt: { $ne: null } })
Ddb.users.find({ deletedAt: { $exists: false } })
Attempts:
2 left
💡 Hint

Think about how to check if a field is missing in MongoDB documents.

query_result
intermediate
2:00remaining
Count soft deleted documents

How to count the number of soft deleted documents in a collection products where soft delete is indicated by a deletedAt field with a timestamp?

MongoDB
db.products.countDocuments({ deletedAt: { $exists: true } })
Adb.products.countDocuments({ deletedAt: { $exists: true } })
Bdb.products.countDocuments({ deletedAt: { $eq: null } })
Cdb.products.countDocuments({ deletedAt: { $exists: false } })
Ddb.products.countDocuments({ deletedAt: null })
Attempts:
2 left
💡 Hint

Soft deleted documents have the deletedAt field present.

📝 Syntax
advanced
2:00remaining
Update document to soft delete

Which update query correctly marks a document as soft deleted by setting deletedAt to the current date?

MongoDB
db.orders.updateOne({ _id: 123 }, { $set: { deletedAt: new Date() } })
Adb.orders.updateOne({ _id: 123 }, { $set: { deletedAt: new Date() } })
Bdb.orders.updateOne({ _id: 123 }, { $set: deletedAt: new Date() })
Cdb.orders.updateOne({ _id: 123 }, { deletedAt: new Date() })
Ddb.orders.updateOne({ _id: 123 }, { $push: { deletedAt: new Date() } })
Attempts:
2 left
💡 Hint

Remember the correct syntax for MongoDB update operators.

🧠 Conceptual
advanced
2:00remaining
Why use soft delete instead of hard delete?

What is the main advantage of using soft delete (marking documents as deleted) over hard delete (removing documents) in MongoDB?

ASoft delete automatically archives documents to another collection.
BSoft delete allows recovery of deleted data if needed later.
CSoft delete improves query performance by reducing document count.
DSoft delete encrypts deleted documents for security.
Attempts:
2 left
💡 Hint

Think about data safety and recovery.

optimization
expert
2:00remaining
Optimize queries with soft delete filter

You have a large customers collection with many soft deleted documents marked by deletedAt. Which index improves performance for queries filtering active customers (deletedAt missing)?

A{ deletedAt: -1 }
B{ deletedAt: 1, status: 1 }
C{ deletedAt: 1 }
D{ deletedAt: 1, _id: 1 }
Attempts:
2 left
💡 Hint

Think about indexing the field used in the filter.