Aplicación práctica de la integración de SpringBoot con MongoDB
Configuración de MongoTemplate
Generalmente, springboot se ensamblará automáticamente de acuerdo con la siguiente configuración, pero si necesita implementar algunas funciones personalizadas, como cifrado y descifrado de contraseñas, conversión de tipos, etc. Necesitas configurar MongoTemplate manualmente.
@EnableMongoRepositories () indica compatibilidad con Spring JPA, que implementa operaciones simples de MongoDB a través de interfaces con nombres estandarizados. No es necesario escribir Consulta usted mismo. Puede usar el atributo de valor de la anotación para especificar el alcance. la anotación.
ReUtil es una clase de utilidad de expresión regular que se utiliza para determinar si el formato del archivo de configuración es correcto. Implementa un proceso de descifrado de archivos de configuración relativamente simple durante la configuración de MongoDatabaseFactory. El método de descifrado se implementa mediante un simple cambio de cadena. .
MappingMongoConverter se utiliza para implementar algunos mapeos complejos entre objetos en Java y el documento MongoDB. De forma predeterminada, cuando un objeto de dominio Java se almacena en MongoDB, se generará una clave "_class" para almacenar el tipo de objeto Java.
Para anular la generación de cada registro, podemos usar la clave "_class" para almacenar el tipo de objeto Java.
La función simple de conversión de tiempo TimestampConverter se implementa a través de MappingMongoConverter, como se muestra a continuación
También se puede realizar una configuración más refinada, por ejemplo
TimestampConverter se configura a través de WritingConverter y ReadingConverter. ReadingConverter se puede configurar para convertir objetos Document y Java entre sí.
Aplicación de MongoTemplate en acción
Por ejemplo, en el sistema de blogs, usamos MongoDB para almacenar el historial de navegación del usuario. La entidad del historial de navegación es la siguiente
< p. > Como se muestra en la figura anterior, el artículo de cada persona tiene un historial de navegación. Cada visita aumentará el número de visitas en 1 y el viewCount de cada visita será +1. Las operaciones básicas de MongoTemplate en este escenario se presentan a continuación.
Estas operaciones son básicamente las mismas, como se muestra a continuación, pasando un objeto Consulta, que encapsula las condiciones de la consulta, la clase de entidad del objeto de mapeo en Java y el nombre del documento correspondiente. en MongoDB.
Por ejemplo, si queremos consultar el número de veces que un usuario ha visitado un blog específico, solo necesitamos crear una condición de consulta que consulte por ID de blog y visitante.
Buscar y modificar significa actualizar registros que coincidan con las condiciones de la consulta de la siguiente manera:
Una consulta encapsula las condiciones de la consulta y una actualización encapsula la actualización. contenido . Por ejemplo, cada vez que el usuario actualiza la página, se realizará la operación viewCount +1. Podemos usar la operación findAndModify como se muestra a continuación
Como se muestra en la figura anterior, primero determine si el usuario ha accedido. Si es así, la operación Actualización +1 se realiza en función del número de visitas en ViewCount. Si no hay visitas, la operación se realiza en función del nuevo registro de visitas.
La operación de guardar incluye principalmente los métodos insertar y guardar. Ambos métodos no tienen valor de retorno. Al mismo tiempo, existen algunas diferencias entre los dos métodos.
Este método se muestra en la siguiente figura
La función de este método explicada en los comentarios es que si hay un documento que coincide con las condiciones de la consulta, será. actualizado según el contenido. De lo contrario, si hay contenido que coincide con las condiciones de la consulta, se insertará y actualizará un nuevo documento según las condiciones de la consulta.
Consulta de agregación En MongoDB, la agregación se utiliza para procesar datos (como promedios estadísticos, sumas, etc.) y devolver resultados de datos calculados. Este artículo se centrará en la implementación de Java.
Combinado con el escenario anterior, si necesitamos contar todas las visitas a la columna del blogger, incluido el número total de visitantes, el número total de visitas y los detalles del número de visitas correspondientes a cada visitante y satisfacer las necesidades de paginación, entonces debemos utilizar la operación de agregación de MongoDB, y la implementación específica es la siguiente
Resumen
Este artículo presenta principalmente la implementación Java de MongoDB. strong> Resumen
Este artículo presenta en detalle cómo SpringBoot se integra con MongoDB y demuestra el uso básico de MongoTemplate combinado con los registros de acceso al sistema de blogs.