Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Uso de vistas en Amazon DocumentDB 8.0
-
Amazon DocumentDB 8.0 ahora admite vistas. Las vistas funcionan como colecciones virtuales que presentan datos en función de operaciones de agregación especificadas. Al crear una vista, se define una consulta que transforma los datos de una o más colecciones de fuentes. Amazon DocumentDB 8.0 ejecuta esta consulta cada vez que se accede a la vista, sin consumir recursos de almacenamiento adicionales. A diferencia de las colecciones estándar, las vistas de Amazon DocumentDB 8.0 no almacenan los documentos en disco, lo que las convierte en una solución eficaz para presentar datos transformados o filtrados a las aplicaciones. Para crear una vista en Amazon DocumentDB, puede utilizar el comando CreateView o el método auxiliar db.createView ():
db.createView("viewName","sourceCollection", [ { $match: { status: "active" } }, { $project: { _id: 1, name: 1, email: 1 } } ] )Esto crea una vista denominada «viewName» basada en «SourceCollection» que solo incluye los documentos activos y proyecta únicamente los campos _id, name y correo electrónico. Las vistas de Amazon DocumentDB son de solo lectura. Las operaciones de escritura en las vistas devolverán un error. Para obtener un rendimiento óptimo con conjuntos de datos de gran tamaño, puede estructurar sus canalizaciones de visualización para maximizar la eficiencia. Para los procesos de agregación complejos, se recomienda utilizar la etapa $match como primera etapa o al principio del proceso para reducir la cantidad de documentos que deben procesarse las etapas posteriores y, de este modo, mejorar el rendimiento de las consultas.
Prácticas recomendadas
A continuación se detallan algunas de las prácticas recomendadas que se deben seguir con Views.
Filtrar anticipadamente: utilice las etapas de $match al principio de las canalizaciones de visualización para reducir la cantidad de datos procesados.
Evite las agregaciones complejas: para las vistas con agregaciones complejas a las que se accede con frecuencia, considere la posibilidad de crear una colección independiente con resultados precalculados que se actualicen periódicamente.
Planificación de índices: asegúrese de que los campos utilizados en las canalizaciones de vistas, especialmente en las operaciones $match y $sort, estén indexados correctamente en la colección de origen.
Optimización de consultas: utilice el comando explain para comprender cómo se ejecutan las consultas de visualización y optimizarlas en consecuencia.
Alternativas para las vistas: dadas las diferencias funcionales entre las vistas de Amazon DocumentDB y MongoDB, considere la posibilidad de utilizar colecciones regulares con actualizaciones programadas como alternativa a las vistas cuando se encuentre con limitaciones.
Compatibilidad con los operadores de agregadores
Amazon DocumentDB admite muchos operadores de agregación en las definiciones de vistas y, al mismo tiempo, sigue ampliando la compatibilidad. Cuando utilice vistas, concéntrese en los siguientes operadores compatibles:
$match para filtrar documentos
$project para la selección y transformación de campos
$addFields para añadir campos calculados
$sort para ordenar los resultados
$limit y $skip para paginación
Algunos operadores especializados, como $currentOp, $replaceRoot y $geoNear, actualmente funcionan en consultas de agregación directa en lugar de ver definiciones.
Aprovechamiento de índices y vistas
Las vistas de Amazon DocumentDB 8.0 utilizan los índices de la colección subyacente. Como resultado, no puede crear, eliminar ni reconstruir índices directamente en una vista. Sin embargo, unos índices bien diseñados en la colección fuente pueden mejorar considerablemente el rendimiento de las consultas de visualización. A continuación, se indican algunos pasos para optimizar el rendimiento de las consultas en las vistas:
Asegúrese de que existan los índices adecuados en los campos de la colección fuente utilizados en la canalización de la vista, especialmente en las operaciones $match y $sort
Utilice el método explain () para analizar los planes de ejecución de las consultas y verificar el uso de los índices. Por ejemplo,
db.viewName.find({...}).explain()