Cuando estoy en un grupo de usuarios o en una conferencia, la gente a menudo se me acerca después con buenas preguntas. Es una forma estupenda de obtener ideas para publicar en el blog: si tienen una pregunta, lo más probable es que muchas otras personas tengan la misma. También es una buena forma de conocer a otras personas. Couchbase mejor.

Este post responde a una de esas preguntas: ¿puedo copiar documentos de un cubo a otro??

Copiar de cubo a cubo

De hecho, si has hecho este tipo de cosas en SQL, no estás muy lejos de conocer la respuesta.

Fire buckets Image Licensed through Creative Commons via Paul Harrop - http://www.geograph.org.uk/photo/2666296
Cubos de bomberos Imagen con licencia Creative Commons vía Paul Harrop

Existen herramientas de línea de comandos para copia de seguridad/restaurar un cubo, pero para este post, voy a suponer que lo que quieres es hacer una copia de algunos documentos del cubo A al cubo B.

Es tan fácil como utilizar un N1QL INSERTAR.

Empiece por crear un N1QL SELECCIONAR para sacar los documentos que quieras del primer cubo. Voy a mostrar una muy simplificada SELECCIONAR que consigue todos los documentos de mi por defecto cubo. Si sólo desea un subconjunto, puede utilizar una función DÓNDE cláusula.

Dado que estamos copiando a otro bucket, necesitamos tanto la clave como el propio documento. Esta consulta selecciona la clave del documento mediante la función META() y selecciona el documento mediante una función _v alias.

A continuación, crearé un INSERTAR para poner estos documentos seleccionados en otro cubo, que llamé objetivo.

En INSERTAR necesita una clave y un valor. Tengo los de la SELECCIONAR. Todo hecho.

Más información sobre N1QL INSERT

El enlace:N1QL INSERTAR es muy potente, y se pueden hacer muchas otras cosas con él:

  • Insertar un único documento
  • Inserciones a granel
  • Insertar valores mediante SELECCIONAR (que es similar a lo que hicimos en este post)
  • Insertar valor con una tecla de combinación, utilizando una proyección
  • Insertar valores mediante subconsultas
  • Insertar valores utilizando funciones N1QL
  • Utilización de preparados INSERTAR consultas

Ten en cuenta que se aplican las advertencias típicas: asegúrate de tener una buena indexación cuando escribas el SELECT. Si está copiando muchos documentos, puede que desee ajustar temporalmente el tiempo de espera. Todos los documentos de un bucket deben tener una clave única. No hay vuelta atrás cuando se insertan varios documentos: si un INSERTAR falla en el 10º documento de cada 100, los 9 primeros documentos siguen insertados.

Para obtener respuestas más detalladas sobre N1QL, consulte la página Foro Couchbase N1QL.

Sígame en Twitter si tiene alguna pregunta: ¡puede que su pregunta se convierta en la próxima entrada de mi blog!

Autor

Publicado por Matthew Groves

A Matthew D. Groves le encanta programar. No importa si se trata de C#, jQuery o PHP: enviará pull requests para cualquier cosa. Lleva codificando profesionalmente desde que escribió una aplicación de punto de venta en QuickBASIC para la pizzería de sus padres, allá por los años noventa. Actualmente trabaja como Director de Marketing de Producto para Couchbase. Su tiempo libre lo pasa con su familia, viendo a los Reds y participando en la comunidad de desarrolladores. Es autor de AOP in .NET, Pro Microservices in .NET, autor de Pluralsight y MVP de Microsoft.

Dejar una respuesta