Nivel 2 · 20 min
Atlas
MongoDB Atlas es el servicio cloud gestionado para MongoDB. Más allá del hosting, Atlas provee Atlas Search (búsqueda full-text basada en Lucene), backups automatizados con PITR, herramientas de performance y capacidades serverless.
Atlas Search
Atlas Search es un motor de búsqueda full-text construido sobre Apache Lucene, estrechamente integrado con MongoDB. A diferencia del operador básico $text de MongoDB, Atlas Search provee: ranking por relevancia (BM25), fuzzy matching, autocomplete, highlight, scoring personalizado, facetas, sinónimos y analyzers de idioma. Los índices de Atlas Search se definen separadamente de los índices MongoDB y se mantienen en procesos Lucene co-ubicados con mongod. En los aggregation pipelines, Atlas Search se accede via el stage $search (debe ser el primero en el pipeline). El stage $searchMeta devuelve metadatos de facetas sin hits de documentos.
Backup y PITR
Atlas provee backups continuos en la nube con point-in-time recovery (PITR). Los backups se toman como snapshots a intervalos programados (horario, diario, semanal, mensual). PITR permite restaurar a cualquier segundo dentro de la ventana de retención de backups. Bajo el capó, PITR funciona aplicando el oplog a un snapshot base: reproduciendo todas las operaciones hasta el punto de restauración deseado. La restauración de snapshot es más rápida pero menos granular. PITR es más lenta pero precisa. Para compliance, Atlas habilita copias de backup inmutables y cifrado en reposo con claves gestionadas por el cliente (BYOK).
Performance Advisor y Optimización
El Performance Advisor de Atlas analiza el profiler de queries y sugiere índices faltantes: identifica queries lentas ('>' 100ms) y recomienda el índice específico que las mejoraría. Atlas Query Insights provee una vista agregada de la performance de queries a lo largo del tiempo. El Online Archive mueve automáticamente datos más viejos que una fecha definida a Atlas Data Lake: un tier de almacenamiento frío costo-eficiente. Atlas Triggers ejecutan funciones serverless en eventos de base de datos (insert, update, delete), habilitando arquitecturas event-driven sin infraestructura externa.
Code example
// Atlas Search in aggregation pipeline\ndb.products.aggregate([\n {\n $search: {\n index: 'default',\n text: {\n query: 'laptop',\n path: 'name',\n fuzzy: {maxEdits: 1}\n }\n }\n },\n {$limit: 10},\n {$project: {name: 1, price: 1, score: {$meta: 'searchScore}'}'}\n])