MongoDB Compass Interview Questions

Introduction

This guide covers essential MongoDB Compass concepts commonly asked in technical interviews. Each question includes detailed answers and practical examples.

Medium

1. What is MongoDB Compass and what are its key features?

MongoDB Compass is the official GUI for MongoDB that provides a visual interface for database operations. Key features include:

  • Visual Query Builder
  • Schema Analysis
  • Index Management
  • Performance Monitoring
  • Data Visualization
  • CRUD Operations
  • Aggregation Pipeline Builder
  • Document Validation
Benefits:
  • User-friendly interface
  • Real-time data exploration
  • Performance optimization
  • Schema analysis and validation
  • Query building and testing
Hard

2. How do you use Compass for query building and optimization?

Query building and optimization in Compass:

1. Query Building
// Basic query
{
    "age": { "$gt": 25 },
    "status": "active"
}

// Advanced query with operators
{
    "$and": [
        { "age": { "$gt": 25 } },
        { "status": "active" },
        { "tags": { "$in": ["premium", "verified"] } }
    ]
}

// Aggregation pipeline
[
    {
        "$match": {
            "status": "active"
        }
    },
    {
        "$group": {
            "_id": "$category",
            "count": { "$sum": 1 },
            "avgAge": { "$avg": "$age" }
        }
    },
    {
        "$sort": {
            "count": -1
        }
    }
]
2. Performance Optimization
// Index creation
{
    "name": "idx_status_age",
    "key": {
        "status": 1,
        "age": 1
    },
    "background": true
}

// Explain plan analysis
db.users.find({
    "status": "active",
    "age": { "$gt": 25 }
}).explain("executionStats")

// Performance monitoring
db.currentOp()
db.serverStatus()
Hard

3. How do you use Compass for schema analysis and validation?

Schema analysis and validation in Compass:

1. Schema Analysis
// Schema validation rules
{
    "$jsonSchema": {
        "bsonType": "object",
        "required": ["name", "email", "age"],
        "properties": {
            "name": {
                "bsonType": "string",
                "minLength": 2
            },
            "email": {
                "bsonType": "string",
                "pattern": "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$"
            },
            "age": {
                "bsonType": "int",
                "minimum": 18,
                "maximum": 120
            }
        }
    }
}

// Collection validation
db.createCollection("users", {
    validator: {
        $jsonSchema: {
            // schema definition
        }
    },
    validationLevel: "moderate",
    validationAction: "warn"
})
2. Data Analysis
// Field distribution analysis
db.users.aggregate([
    {
        "$group": {
            "_id": "$status",
            "count": { "$sum": 1 },
            "avgAge": { "$avg": "$age" }
        }
    }
])

// Data type analysis
db.users.aggregate([
    {
        "$project": {
            "fieldTypes": {
                "$objectToArray": "$$ROOT"
            }
        }
    }
])
Hard

4. How do you use Compass for performance monitoring?

Performance monitoring in Compass:

1. Performance Metrics
// Server status
db.serverStatus()

// Current operations
db.currentOp()

// Database stats
db.stats()

// Collection stats
db.users.stats()

// Index usage
db.users.aggregate([
    { "$indexStats": {} }
])
2. Performance Optimization
// Query optimization
db.users.find({
    "status": "active",
    "age": { "$gt": 25 }
}).explain("executionStats")

// Index optimization
db.users.createIndex(
    { "status": 1, "age": 1 },
    { "background": true }
)

// Performance profiling
db.setProfilingLevel(1, { slowms: 100 })
Hard

5. What are the Compass best practices?

Follow these Compass best practices:

1. Query Building
// Use query filters
{
    "status": "active",
    "createdAt": {
        "$gte": ISODate("2024-01-01")
    }
}

// Use projections
{
    "name": 1,
    "email": 1,
    "_id": 0
}

// Use proper indexes
db.users.createIndex(
    { "status": 1, "createdAt": -1 },
    { "background": true }
)
2. Data Management
// Regular maintenance
db.repairDatabase()

// Data validation
db.users.validate()

// Index maintenance
db.users.reIndex()

// Performance monitoring
db.currentOp()
db.serverStatus()

Next Steps

Continue your MongoDB interview preparation with: