¡Couchbase Server 4 ha aterrizado!
y el SDK .NET de Couchbase facilita su uso.
¿Qué hay de nuevo?
- N1QL - ahora puedes hacer consultas enriquecidas contra tus documentos JSON en Couchbase
- XDCR filtrado: no es necesario copiar todos los datos a un centro de datos remoto.
- Seguridad LDAP: acceso gestionado más sencillo al servidor Couchbase y a los eventos de registro.
- ¿He mencionado N1QL?
- y muchas otras funciones.
Descárgalo e instálalo: Servidor Couchbase 4.0
N1QL - Consulta enriquecida
Una de las mayores características de Couchbase 4.0 es la opción de usar N1QL para consultar tus documentos. El lenguaje está basado en SQL y añade algunas características para ayudarte a trabajar con documentos JSON desnormalizados.
1 2 3 |
SELECCIONAR * DESDE cubo DONDE atributo1 = 'HOLA' Y atributo2 COMO '%N1QL%' LÍMITE 2 |
La consulta N1QL anterior se ve exactamente como SQL. La única diferencia es que en N1QL no estamos seleccionando de un bucket sino de una tabla, pero esto es implementación no sintaxis. Escribir consultas N1QL es a menudo como escribir sus consultas SQL normales.
N1QL es más que SQL
SQL está construido para consultar datos estructurados con un esquema bien definido y tipos de datos bien definidos para cada columna. N1QL por otro lado es para consultar datos JSON con un esquema flexible, por lo tanto tenemos algunas opciones adicionales en N1QL para ayudarnos a consultar este modelo de datos flexible.
1 2 3 4 5 6 |
SELECCIONE valor1, valor2, {'yes_this_is_valid': verdadero} DESDE cubo DONDE atributo1 = 'HOLA' Y atributo2 COMO '%N!QL%' Y atributo3 IS NO FALTA Y CUALQUIER artículo EN lista_de.valores SATISFACE artículo.cuente >= 5 FIN |
Sigue pareciendo SQL, pero ahora hemos añadido algunos operadores para ayudarnos a trabajar con los datos JSON.
¿Quieres saber más sobre N1QL y Couchbase Server?
El SDK .NET de Couchbase y N1QL
N1QL tiene soporte de primera clase en el .NET SDK e incluso tiene la opción de usar N1QL con LINQ. Veamos algunas de las diferentes formas de usar N1QL con el SDK .NET.
1 2 3 4 5 6 7 8 9 |
cadena sql = "SELECT COUNT(*) FROM default WHERE type=$param1"; consulta = nuevo Solicitud de consulta(sql) .AddNamedParameter("param1", "..."); var resultado = ClusterHelper .GetBucket("viaje-muestra") .Consulta(consulta); devolver resultado.Filas; |
El fragmento anterior muestra cómo utilizar la API N1QL sin procesar, pasando una consulta y ejecutándola a través de una llamada a Query on the Bucket.
1 2 3 4 5 |
// Sintaxis de consulta var resultado = de miArtículo en ClusterHelper.GetBucket("cubo").Consultable() donde miArtículo.Atributo1 == "...." seleccione nuevo { miValor = miArtículo.Atributo1} |
Pero también se puede utilizar la Sintaxis de Consulta con LINQ. Cuando se utiliza Language Integrated Query (LINQ) .NET utiliza reflection para construir la cadena de consulta, en nuestro caso la cadena de consulta N1QL. Uno de los principales beneficios de utilizar LINQ sobre las consultas escritas a mano es la seguridad de tipo, la finalización de código y la comprobación en tiempo de compilación. Pero para obtener la seguridad de tipo LINQ necesita una clase que defina tanto el documento que consultamos (puedes pensar en esto como un esquema en código) como el resultado devuelto. Esto puede ser la misma clase pero también pueden ser dos clases diferentes dependiendo de tu consulta.
En este caso "MyClass" se utiliza para completar el código y construir la consulta N1QL y un tipo anónimo se utiliza para mantener el resultado.
1 2 3 4 5 6 |
// Sintaxis lambda ClusterHelper .GetBucket("cubo") .Consultable() .Dónde(artículo => miArtículo.Atributo1 == "....") .Seleccione(artículo => nuevo { miValor = miArtículo.Atributo1 }; |
Y, por supuesto, la sintaxis lambda también es una opción.
Uso de N1QL y el SDK .NET en su propio proyecto
Todo es OpenSource, así que siempre puedes obtener el código fuente en GitHub:
Si usted (como yo y la mayoría de los demás desarrolladores .NET) prefiere los paquetes Nuget, puede encontrarlos aquí:
Primeros pasos con Couchbase Server 4 y .NET
Try-cb-dotnet es una de las nuevas muestras que me gustaría destacar como un gran recurso para aprender y familiarizarse con N1QL en .NET try-cb-dotnet
Try-cb-dotnet está dividido en una serie de ramas, cada rama representa un paso en un tutorial, con la esperanza de que sea más fácil para usted aprender a utilizar N1QL en .net.