Vamos a crear una aplicación en
VS2019 MVC que pueda conectarse de manera fácil a una base de datos de mongo.
Para este ejemplo vamos a utilizar
una base de datos de Atlas que nos permite tener una sola de 500MB gratis. Ya si
se desea tener mayor capacidad o más bases de datos se requiere de pagar por el
uso de estas.
Bueno en este momento vamos a crear
una aplicación de MVC con VS2019.
Después de crear el proyecto nuevo
debemos instalar los siguientes paquetes desde Nuget
Lo que tenemos que hacer ahora es
crear un folder nuevo llamado Repository. En este folder vamos a crear las
clases necesarias para poder interactuar con nuestra base de datos. Primero
desarrollaremos una interfaz con los métodos base para las operaciones sobre la
base de datos, estas operaciones serian buscar documento, borrar documento,
actualizar documento y agregar documentos. El nombre de nuestra interfaz seria IMongoInteraction.
Para poder construir el código necesario
de cada una operación debemos crear una clase llamada MongoInteraction esta
clase debe implementar la interfaz. Dentro de esta clase vamos a construir el código
necesario para poder interactuar con la base de datos.
Nosotros vamos a trabajar con un
documento que lo podemos definir en una clase POCO que en nuestro caso llamamos
MongoDocument (esta puede tener cualquier otro nombre). Para este
ejemplo la clase no tiene propiedades, sin embargo, para poder trabajar ya con
mongo debemos agregar las propiedades que deseamos guardar en los documentos.
MongoInteraction requiere un
constructor el cual nos permite inicializar la conexión de la base de datos,
agregar el nombre de nuestra base de datos y la colección que deseamos usar
para manipular los documentos.
En este
momento la manipulación de los documentos es muy fácil y siempre vamos a
utilizar el objeto _collection que ya tiene todo lo necesario para poder
trabajar sobre la colección de datos.
Como podemos observar en la línea 23
para borrar un documento hacemos uso de _collection y el método DeleteOneAsync,
este ultimo requiere de un filtro para saber cuales datos queremos borrar. Lo mismo
con el método de buscar lo único que se necesita es el filtro. Ahora para poder
crear un documento debemos crear un objeto de la clase MongoDocument (POCO) que
tiene los atributos del documento y enviar esto al método InsertOneAsync. Finalmente,
el método para actualizar o remplazar un documento requiere primero el filtro
del documento que deseamos reemplazar y la información del nuevo documento que
se quiere usar de ahora en adelante. Ya con esto podemos hacer las operaciones
en la colección de mongo.
Ahora nos vamos a ir al controlador
Home donde vamos a ver como llamar las operaciones para trabajar con nuestra
base de datos. En la línea 17 creamos una variable que nos permite manejar la
clase con las operaciones en todo el controlador. Como se puede ver en el
constructor de la clase se pasa por referencia un objeto de tipo IMongoInteraction,
este es el que se asigna en la línea 23.
Con todo esto preparados seguimos a
la línea 26 donde tenemos un método llamado Index. Aquí se puede observar en la
línea 29 como creamos el filtro para cargar datos de nuestra colección de
mongo. Se define el filtro y se pasa al método de buscar en la línea 30. Este nos
debe retornar un objeto de tipo MongoDocument. Para cualquier otra operación se
debe crear un filtro igual que en la línea 29 claro cambiando lo que se desea
filtrar, es decir, cualquier otra propiedad o propiedades.
Nos queda pendiente un último paso
para poder utilizar mongo, el cual debemos desarrollar en la clase Startup
En este paso se debe agregar la línea
24 donde usando la variable service agregamos un objeto de IMongoInteraction,
esto usando el método AddSingleton. Nada mas recordar que para este objeto se
debe pasar la conexión string para nuestro ejemplo lo estamos llamando del
appsettings.
De esta manera tenemos una aplicación
web con acceso a una base de datos de mongodb.
Ejemplo
Etiquetas: .netcore, BaseDatos, C#, MongoDB