.NET

Ya está disponible el SDK v2.2.7 de Couchbase.NET con la vista previa para desarrolladores de la gestión de índices.

Ya está disponible el SDK v2.2.7 de Couchbase.NET con la vista previa para desarrolladores de la gestión de índices.

¡Hoy lanzamos la versión 2.2.7 del SDK .NET oficial de Couchbase! Esta versión contiene soporte para la gestión de índices y añade la API de sub-documento que fue lanzada como una vista previa para desarrolladores en la versión 2.2.6, así como una corrección de errores y mejoras en el futuro soporte de .NET Core.

Gestión de índices

Los Índices Secundarios Globales (GSIs) son una pieza importante de la arquitectura de consulta N1QL en el servidor Couchbase permitiendo consultas rápidas y de baja latencia. Puedes colocar índices en elementos JSON, expresiones N1QL y usando filtros a través de una cláusula WHERE. Para la v2.2.7 del SDK .NET hemos construido una abstracción sobre el servicio de indexación de Couchbase Server que hace muy fácil crear índices primarios y secundarios. Esta abstracción extiende y amplía la clase BucketManager que incluye soporte para crear y gestionar Buckets de Couchbase.

El BucketManager se crea abriendo un objeto Bucket fuera de una instancia Cluster y pasando la configuración correcta para su entorno.

Creación y eliminación de índices primarios

Puedes crear índices primarios con nombre y sin nombre llamando a los métodos CreatePrimaryIndex y CreateNamedPrimaryIndex una vez que tengas la instancia de BucketManager:

Tenga en cuenta que siempre está trabajando con el contexto del cubo que ha abierto. Así que estos índices se crearán en el cubo "muestra-cerveza" que hemos abierto antes. Además, ten en cuenta que ambos métodos toman un campo booleano llamado "defer", de hecho, como verás, todos los métodos de creación contienen un parámetro "defer". Si "defer" es verdadero, el índice será creado, sin embargo, no será construido hasta que el método BuildDeferredIndexes sea llamado. Más sobre índices diferidos más adelante.

Dar de baja un índice primario con o sin nombre es prácticamente igual que crear un índice, con la excepción de los nombres de los métodos:

Tenga en cuenta que si el índice no existe, entonces result.Success será falso.

Creación y eliminación de índices secundarios

La creación y eliminación de índices secundarios es similar a la de los índices primarios, con la diferencia de que también se puede indexar uno o varios campos.

Nótese que en este caso estoy pasando "true" para que la construcción del índice sea diferida. Además, si el índice ya existe o si no existe e intentas eliminarlo, result.Success será false.

Actualizaciones de la API de subdocumentos

Esta versión también contiene cambios internos en la API SubDocument lanzada como Developer Preview en 2.2.6. Se han añadido dos mejoras importantes relacionadas con el rendimiento:

  1. Si se ejecuta una única operación de mutación o búsqueda, el SDK utilizará una operación única en lugar de una multioperación, lo que ahorra unos pocos bytes en el cable.
  2. La deserialización del cuerpo de la respuesta se aplaza ahora hasta que se llame a Content

Expresiones lambda para la navegación por rutas de subdocumentos

Además de estos cambios, se ha incluido otra nueva función en la versión gracias a una contribución de la iniciativa comunidad: Navegación de expresiones lambda para rutas de subdocumentos. Esta característica le permite utilizar la sintaxis familiar de tipo seguro, intellisense apoyado que disfrutar de linq en lugar de simplemente pasar en las rutas de cadena.

Suponiendo que un documento que se parece a:

A continuación, recupere el valor en la ruta "geo.accuracy" de la siguiente manera:

Por supuesto, puede encadenar varios "Gets" para recuperar cada elemento individual del documento.

Notas de la versión 2.2.7

Error

  • [NCBC-1099] - Añadir atributo DataContract a las clases Error, Warning y Metrics

Mejora

  • [NCBC-1103] - Soporte para operaciones asíncronas en subdocumentos
  • [NCBC-994] - Actualizar el entorno de desarrollo y los proyectos a VS2015
  • [NCBC-1089] - Esperar todas las rutas de código no exitosas
  • [NCBC-1095] - No reintentar en NodeUnavailableException

Nueva función

  • [NCBC-1067] - Ampliar BucketManager para que admita la gestión de índices
  • [NCBC-1093] - Incluir compatibilidad con la API de subdocumentos - Parte 2 Comandos únicos DP2

Cómo conseguir la v2.2.7

  • Descargar los binarios aquí.
  • El paquete NuGet se encuentra en aquí.
  • El repositorio de Github es aquí.
Comparte este artículo
Recibe actualizaciones del blog de Couchbase en tu bandeja de entrada
Este campo es obligatorio.

Autor

Publicado por Jeff Morris, Ingeniero Superior de Software, Couchbase

Jeff Morris es Ingeniero de Software Senior en Couchbase. Antes de unirse a Couchbase, Jeff pasó seis años en Source Interlink como Arquitecto Web Empresarial. Jeff es responsable del desarrollo de los SDK de Couchbase y de cómo integrarse con N1QL (lenguaje de consulta).

Deja un comentario

¿Listo para empezar con Couchbase Capella?

Empezar a construir

Consulte nuestro portal para desarrolladores para explorar NoSQL, buscar recursos y empezar con tutoriales.

Utilizar Capella gratis

Ponte manos a la obra con Couchbase en unos pocos clics. Capella DBaaS es la forma más fácil y rápida de empezar.

Póngase en contacto

¿Quieres saber más sobre las ofertas de Couchbase? Permítanos ayudarle.