{"id":7288,"date":"2020-07-30T22:17:30","date_gmt":"2020-07-31T05:17:30","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=7288"},"modified":"2025-06-13T22:39:27","modified_gmt":"2025-06-14T05:39:27","slug":"migrating-data-from-mongodb-to-couchbase","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/es\/migrating-data-from-mongodb-to-couchbase\/","title":{"rendered":"Migraci\u00f3n de datos de MongoDB a Couchbase"},"content":{"rendered":"<h2>Pr\u00f3logo<\/h2>\n<p>Este art\u00edculo te guiar\u00e1 a trav\u00e9s de una migraci\u00f3n \u00fanica de MongoDB a Couchbase. Aprender\u00e1s c\u00f3mo exportar desde la estructura de datos de MongoDB, importar a Couchbase y hacer algunas transformaciones b\u00e1sicas en esos documentos.<\/p>\n<p>Todo el c\u00f3digo de este blog est\u00e1 disponible en el siguiente repositorio Git: <a href=\"https:\/\/github.com\/dugbonsai\/mongodb-to-couchbase\">mongodb-to-couchbase<\/a><\/p>\n<h2>Requisitos previos<\/h2>\n<p>Este art\u00edculo utiliza el conjunto de datos de ejemplo mflix que se ha cargado en un cl\u00faster MongoDB. Estoy usando MongoDB Atlas pero la informaci\u00f3n de este art\u00edculo se aplica tambi\u00e9n a instalaciones de MongoDB que no sean Atlas. Si necesita cargar el conjunto de datos de ejemplo en MongoDB, consulte el art\u00edculo <a href=\"https:\/\/docs.atlas.mongodb.com\/sample-data\/load-sample-data\/#load-sample-data\">instrucciones aqu\u00ed<\/a>.<\/p>\n<p><a href=\"https:\/\/www.mongodb.com\/products\/compass\">Br\u00fajula MongoDB<\/a> se utiliza para exportar el conjunto de datos y este art\u00edculo asume que ya est\u00e1 configurado para conectarse al cl\u00faster MongoDB donde reside el conjunto de datos mflix de ejemplo.<\/p>\n<p>Tambi\u00e9n necesitar\u00e1s un cluster Couchbase Server Enterprise Edition (EE) 6.5 con los servicios Data, Index, Query y Eventing habilitados (NOTA: Index y Query se usar\u00e1n en un art\u00edculo futuro). Estoy usando una instalaci\u00f3n local de un solo nodo de Couchbase Sever EE pero la informaci\u00f3n de este art\u00edculo se aplica a cualquier cluster de Couchbase Server EE.<\/p>\n<p>Si no dispone de un cl\u00faster de Couchbase Server EE, los siguientes enlaces le ayudar\u00e1n a ponerlo en marcha r\u00e1pidamente:<\/p>\n<ol>\n<li><a href=\"https:\/\/www.couchbase.com\/blog\/es\/downloads\/\">Descargar Couchbase Sever EE 6.5<\/a><\/li>\n<li>Instalar Couchbase Server EE\n<ul>\n<li><a href=\"https:\/\/docs.couchbase.com\/server\/current\/install\/install-linux.html\">Linux<\/a><\/li>\n<li><a href=\"https:\/\/docs.couchbase.com\/server\/current\/install\/install-package-windows.html\">Windows<\/a><\/li>\n<li><a href=\"https:\/\/docs.couchbase.com\/server\/current\/install\/macos-install.html\">macOS<\/a><\/li>\n<\/ul>\n<\/li>\n<li style=\"text-align: left;\"><a href=\"https:\/\/docs.couchbase.com\/server\/current\/manage\/manage-nodes\/create-cluster.html#provision-a-node-with-the-ui\">Aprovisionar un cl\u00faster de un solo nodo<\/a>\u00a0(NOTA: utilice los valores predeterminados para la configuraci\u00f3n del cl\u00faster).<\/li>\n<\/ol>\n<h2>JSON, BSON y JSON extendido<\/h2>\n<p>MongoDB y Couchbase son bases de datos documentales y ambas almacenan documentos JSON. Sin embargo, MongoDB representa documentos JSON en un formato de codificaci\u00f3n binaria llamado BSON. JSON s\u00f3lo puede representar un subconjunto de los tipos soportados por BSON. Para preservar la informaci\u00f3n de tipos, MongoDB utiliza Extended JSON que incluye extensiones al formato JSON. Consulte la <a href=\"https:\/\/github.com\/mongodb\/specifications\/blob\/master\/source\/extended-json.rst\">Especificaci\u00f3n JSON ampliada de MongoDB<\/a> para m\u00e1s detalles sobre los diferentes tipos y convenciones de Extended JSON.<\/p>\n<p>Estos son algunos ejemplos de c\u00f3mo MongoDB representa diferentes tipos de informaci\u00f3n:<\/p>\n<ul>\n<li><strong>ObjectId<\/strong>: \u201c_id\u201d:{\u201c$oid\u201d:\u201d573a1390f29313caabcd4135\u2033}<\/li>\n<li><strong>Entero<\/strong>: \"tiempo de ejecuci\u00f3n\":{\"$numberInt\": \"1\u2033}<\/li>\n<li><strong>Fecha<\/strong>: \u201creleased\u201d:{\u201c$date\u201d:{\u201c$numberLong\u201d:\u201d-2418768000000\u2033}}<\/li>\n<li><strong>Doble<\/strong>: \"rating\":{\"$numberDouble\": \"6.2\u2033}<\/li>\n<\/ul>\n<p>Aunque Couchbase puede almacenar esta informaci\u00f3n, es m\u00e1s f\u00e1cil trabajar con documentos que no utilizan el formato JSON extendido. Usando los ejemplos anteriores, los valores tendr\u00edan este aspecto:<\/p>\n<ul>\n<li><strong>ObjectId<\/strong>: \u201c_id\u201d:\u201d573a1390f29313caabcd4135\u2033<\/li>\n<li><strong>Entero<\/strong>: \"tiempo de ejecuci\u00f3n\":1<\/li>\n<li><strong>Fecha<\/strong>: \u201creleased\u201d:-2418768000000<\/li>\n<li><strong>Doble<\/strong>: \"valoraci\u00f3n\":6.2<\/li>\n<\/ul>\n<h2>Exportar datos desde MongoDB<\/h2>\n<p>Utiliza MongoDB Compass para exportar los archivos <strong>pel\u00edculas<\/strong> y <strong>comentarios<\/strong> colecciones de la <strong>sample_mflix<\/strong> base de datos. En Compass, ampl\u00ede el archivo <strong>sample_mflix<\/strong> y, a continuaci\u00f3n, seleccione <strong>comentarios<\/strong>.<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-8987\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/07\/01.-Select-movies-and-comments-collection.png\" alt=\"\" width=\"248\" height=\"389\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/01.-Select-movies-and-comments-collection.png 248w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/01.-Select-movies-and-comments-collection-191x300.png 191w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/01.-Select-movies-and-comments-collection-13x20.png 13w\" sizes=\"auto, (max-width: 248px) 100vw, 248px\" \/><\/p>\n<p>Elija el <strong>Colecci\u00f3n -&gt;\u00a0<\/strong><strong>Exportaci\u00f3n<\/strong> del men\u00fa. Seleccione <strong>Exportar la colecci\u00f3n completa<\/strong> y haga clic en <strong>SELECCIONAR CAMPOS<\/strong>.<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-8988\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/07\/02.-Export-full-collection.png\" alt=\"\" width=\"596\" height=\"320\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/02.-Export-full-collection.png 596w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/02.-Export-full-collection-300x161.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/02.-Export-full-collection-20x11.png 20w\" sizes=\"auto, (max-width: 596px) 100vw, 596px\" \/><\/p>\n<p>Seleccione todos los campos y haga clic en <strong>SELECCIONAR SALIDA<\/strong>.<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-8989\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/07\/03.-Select-fields.png\" alt=\"\" width=\"598\" height=\"375\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/03.-Select-fields.png 598w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/03.-Select-fields-300x188.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/03.-Select-fields-20x13.png 20w\" sizes=\"auto, (max-width: 598px) 100vw, 598px\" \/><\/p>\n<p>Seleccione <strong>JSON<\/strong> Tipo de archivo de exportaci\u00f3n, especifique el Archivo de salida y haga clic en <strong>EXPORTACI\u00d3N.<\/strong><\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-8990\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/07\/04.-Select-export-file-type.png\" alt=\"\" width=\"598\" height=\"330\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/04.-Select-export-file-type.png 598w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/04.-Select-export-file-type-300x166.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/04.-Select-export-file-type-20x11.png 20w\" sizes=\"auto, (max-width: 598px) 100vw, 598px\" \/><\/p>\n<p>Haga lo mismo con el <strong>pel\u00edculas\u00a0<\/strong>colecci\u00f3n.<\/p>\n<h2>Importar datos a Couchbase<\/h2>\n<p>A continuaci\u00f3n, importa los datos de la colecci\u00f3n MongoDB a Couchbase. Como se mencion\u00f3 anteriormente, los datos exportados est\u00e1n en formato JSON extendido por lo que el Couchbase <a href=\"https:\/\/docs.couchbase.com\/server\/current\/eventing\/eventing-overview.html\">Servicio de eventos<\/a> se utiliza para realizar algunas transformaciones menores en los datos en tiempo real a medida que los documentos se importan en Couchbase.<\/p>\n<p>A alto nivel, el flujo es el siguiente:<\/p>\n<ol>\n<li>Utiliza el <a href=\"https:\/\/docs.couchbase.com\/server\/current\/tools\/cbimport.html\">Utilidad cbimport<\/a> para importar los documentos JSON al <strong>entrante<\/strong> cubo.<\/li>\n<li>A medida que los documentos se escriben en el <strong>entrante<\/strong> cubo, una funci\u00f3n Eventing transformar\u00e1 los documentos.<\/li>\n<li>Si la transformaci\u00f3n se realiza correctamente, el documento transformado se escribir\u00e1 en el archivo <strong>sample_mflix<\/strong>\u00a0cubo.<\/li>\n<li>Si hay alg\u00fan error, el documento original se escribe en el <strong>error<\/strong>\u00a0cubo. Un atributo de error en el documento contendr\u00e1 el mensaje de error.<\/li>\n<\/ol>\n<h2>Crear cubos<\/h2>\n<p>Cree los tres cubos mencionados anteriormente. Consulte la <a href=\"https:\/\/docs.couchbase.com\/server\/current\/manage\/manage-buckets\/create-bucket.html\">documentaci\u00f3n sobre la creaci\u00f3n de un cubo<\/a> para m\u00e1s detalles sobre los diferentes ajustes y consideraciones para establecer los valores.<\/p>\n<p>En <strong>entrante<\/strong> bucket almacenar\u00e1 temporalmente los documentos mientras se importan a Couchbase. Se trata de un <a href=\"https:\/\/docs.couchbase.com\/server\/current\/learn\/buckets-memory-and-storage\/buckets.html#bucket-types\">cubo ef\u00edmero<\/a> ya que no necesitamos ning\u00fan almacenamiento persistente para estos documentos. Una funci\u00f3n Eventing los transformar\u00e1 y los escribir\u00e1 en el cubo sample_mflix o en el cubo de errores.<\/p>\n<p>Dado que no es necesario que los documentos permanezcan en el bucket una vez transformados, el bucket se configura con un bot\u00f3n <a href=\"https:\/\/docs.couchbase.com\/server\/current\/learn\/buckets-memory-and-storage\/expiration.html\">Tiempo de vida (TTL)<\/a> de 900 segundos (15 minutos). Los documentos son eliminados autom\u00e1ticamente por Couchbase cuando el <a href=\"https:\/\/www.couchbase.com\/blog\/es\/how-to-manage-ttl-with-couchbase-n1ql\/\">TTL<\/a> caduca.<\/p>\n<p>Para crear el <strong>entrante<\/strong> cubo, haga clic en <strong>Cubos<\/strong> y luego <strong>A\u00d1ADIR CUBO<\/strong>.<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-8991\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/07\/05.-Buckets-list-empty.png\" alt=\"\" width=\"1444\" height=\"566\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/05.-Buckets-list-empty.png 1444w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/05.-Buckets-list-empty-300x118.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/05.-Buckets-list-empty-1024x401.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/05.-Buckets-list-empty-768x301.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/05.-Buckets-list-empty-20x8.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/05.-Buckets-list-empty-1320x517.png 1320w\" sizes=\"auto, (max-width: 1444px) 100vw, 1444px\" \/><\/p>\n<p>Configure el <strong>entrante<\/strong> como se indica a continuaci\u00f3n y haga clic en <strong>A\u00f1adir cubo<\/strong>.<\/p>\n<ol>\n<li><strong>Nombre<\/strong>: entrante<\/li>\n<li><strong>Cuota de memoria<\/strong>256 MB (NOTA: Los buckets ef\u00edmeros no persisten en disco, por lo que debe asegurarse de que hay suficiente memoria asignada al bucket para alojar todo el conjunto de datos que se est\u00e1 importando. El tama\u00f1o total de las colecciones de comentarios y pel\u00edculas utilizadas en este ejemplo es de unos 50 MB, por lo que 256 MB son m\u00e1s que suficientes para alojar este conjunto de datos).<\/li>\n<li><strong>Tipo cubo<\/strong>: Ef\u00edmero<\/li>\n<li><strong>Configuraci\u00f3n avanzada de cubos -&gt;\u00a0<\/strong><strong>Tiempo m\u00e1ximo de vida del cubo<\/strong>900 segundos (NOTA: Los documentos se transforman en tiempo real a medida que se escriben en Couchbase, por lo que este valor puede establecerse relativamente bajo. En este caso se utilizan 15 minutos (900 segundos). Si el valor se establece demasiado bajo, el documento podr\u00eda caducar antes de ser procesado).<\/li>\n<\/ol>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-8992\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/07\/06.-incoming-bucket.png\" alt=\"\" width=\"530\" height=\"1142\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/06.-incoming-bucket.png 530w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/06.-incoming-bucket-139x300.png 139w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/06.-incoming-bucket-475x1024.png 475w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/06.-incoming-bucket-300x646.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/06.-incoming-bucket-9x20.png 9w\" sizes=\"auto, (max-width: 530px) 100vw, 530px\" \/><\/p>\n<p>En <strong>sample_mflix<\/strong> se utiliza para almacenar el documento transformado. Se trata de un <a href=\"https:\/\/docs.couchbase.com\/server\/current\/learn\/buckets-memory-and-storage\/buckets.html#bucket-types\">Cubo Couchbase<\/a> ya que necesitamos un almacenamiento persistente para estos documentos. Config\u00farelo como sigue:<\/p>\n<ol>\n<li><strong>Nombre<\/strong>: sample_mflix<\/li>\n<li><strong>Cuota de memoria<\/strong>256 MB (NOTA: los buckets de Couchbase guardan todos los documentos en el disco, por lo que la cuota de memoria determinar\u00e1 cu\u00e1ntos documentos pueden almacenarse en el bucket). <a href=\"https:\/\/docs.couchbase.com\/server\/current\/learn\/buckets-memory-and-storage\/memory-and-storage.html\">capa de cach\u00e9 integrada<\/a> en cualquier momento. El tama\u00f1o total de las colecciones de comentarios y pel\u00edculas utilizadas en este ejemplo es de unos 50 MB, por lo que 256 MB son m\u00e1s que suficientes para albergar este conjunto de datos).<\/li>\n<li><strong>Tipo cubo<\/strong>: Couchbase<\/li>\n<\/ol>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-8993\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/07\/07.-sample_mflix-bucket.png\" alt=\"\" width=\"530\" height=\"451\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/07.-sample_mflix-bucket.png 530w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/07.-sample_mflix-bucket-300x255.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/07.-sample_mflix-bucket-20x17.png 20w\" sizes=\"auto, (max-width: 530px) 100vw, 530px\" \/><\/p>\n<p>En <strong>error<\/strong> se utiliza para almacenar los documentos que no se han podido transformar. Config\u00farelo como sigue:<\/p>\n<ol>\n<li><strong>Nombre<\/strong>: error<\/li>\n<li><strong>Cuota de memoria<\/strong>: 256 MB<\/li>\n<li><strong>Tipo cubo<\/strong>: Couchbase<\/li>\n<\/ol>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-8994\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/07\/08.-error-bucket.png\" alt=\"\" width=\"530\" height=\"450\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/08.-error-bucket.png 530w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/08.-error-bucket-300x255.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/08.-error-bucket-20x17.png 20w\" sizes=\"auto, (max-width: 530px) 100vw, 530px\" \/><\/p>\n<h2>Transformaci\u00f3n de datos con Eventing<\/h2>\n<p><a href=\"https:\/\/docs.couchbase.com\/server\/current\/eventing\/eventing-overview.html\">Eventos<\/a> se utiliza para transformar los datos en tiempo real a medida que se importan a Couchbase. Hay algunas cosas que configurar para utilizar esta funci\u00f3n.<\/p>\n<p>En primer lugar, cree un <a href=\"https:\/\/docs.couchbase.com\/server\/current\/eventing\/eventing-Terminologies.html#buckets\"><strong>metadatos<\/strong> cubo<\/a> que utiliza Eventing para almacenar los datos del sistema. Config\u00farelo como sigue:<\/p>\n<ol>\n<li><strong>Nombre<\/strong>: metadatos<\/li>\n<li><strong>Cuota de memoria<\/strong>: 256 MB<\/li>\n<li><strong>Tipo cubo<\/strong>: Couchbase<\/li>\n<\/ol>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-8995\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/07\/09.-metadata-bucket.png\" alt=\"\" width=\"530\" height=\"451\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/09.-metadata-bucket.png 530w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/09.-metadata-bucket-300x255.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/09.-metadata-bucket-20x17.png 20w\" sizes=\"auto, (max-width: 530px) 100vw, 530px\" \/><\/p>\n<p>En <strong>Cubos<\/strong> muestra los 4 buckets creados: error, incoming, metadata y sample_mflix:<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-8996\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/07\/10.-Buckets-list-4-buckets.png\" alt=\"\" width=\"1444\" height=\"566\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/10.-Buckets-list-4-buckets.png 1444w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/10.-Buckets-list-4-buckets-300x118.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/10.-Buckets-list-4-buckets-1024x401.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/10.-Buckets-list-4-buckets-768x301.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/10.-Buckets-list-4-buckets-20x8.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/10.-Buckets-list-4-buckets-1320x517.png 1320w\" sizes=\"auto, (max-width: 1444px) 100vw, 1444px\" \/><\/p>\n<p>Haga clic en <strong>Eventos<\/strong> y haga clic en <strong>A\u00d1ADIR FUNCI\u00d3N<\/strong> para configurar la funci\u00f3n que se utiliza para transformar los datos en tiempo real a medida que se importan a Couchbase.<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-8997\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/07\/11.-Eventing-no-functions.png\" alt=\"\" width=\"1444\" height=\"566\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/11.-Eventing-no-functions.png 1444w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/11.-Eventing-no-functions-300x118.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/11.-Eventing-no-functions-1024x401.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/11.-Eventing-no-functions-768x301.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/11.-Eventing-no-functions-20x8.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/11.-Eventing-no-functions-1320x517.png 1320w\" sizes=\"auto, (max-width: 1444px) 100vw, 1444px\" \/><\/p>\n<p>Configure la funci\u00f3n del siguiente modo:<\/p>\n<ol>\n<li><strong>Cubo de origen<\/strong>: incoming (Este bucket almacena temporalmente los documentos a medida que se importan a Couchbase)<\/li>\n<li><strong>Cubo de metadatos<\/strong>: metadatos (Este bucket se utiliza para almacenar datos del sistema)<\/li>\n<li><strong>Nombre de la funci\u00f3n<\/strong>: transformar<\/li>\n<li><strong>Descripci\u00f3n<\/strong>: Transformar la exportaci\u00f3n a MongoDB<\/li>\n<li><strong>Fijaciones (<\/strong>Haga clic en el bot\u00f3n <strong>+<\/strong> para a\u00f1adir un segundo enlace)\n<ul>\n<li><strong>tipo de encuadernaci\u00f3n<\/strong>: alias de cubo<\/li>\n<li><strong>nombre de alias<\/strong>: target (alias utilizado en la funci\u00f3n para referirse al cubo)<\/li>\n<li><strong>cubo<\/strong>: sample_mflix (nombre del cubo en el cl\u00faster)<\/li>\n<li><strong>acceso:<\/strong> leer y escribir<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li><strong>tipo de encuadernaci\u00f3n<\/strong>: alias de cubo<\/li>\n<li><strong>nombre de alias<\/strong>: error (alias utilizado en la funci\u00f3n para referirse al cubo)<\/li>\n<li><strong>cubo<\/strong>: error (nombre del cubo en el cl\u00faster)<\/li>\n<li><strong>acceso:<\/strong> leer y escribir<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-8998\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/07\/12.-transform-function.png\" alt=\"\" width=\"640\" height=\"692\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/12.-transform-function.png 640w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/12.-transform-function-277x300.png 277w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/12.-transform-function-300x324.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/12.-transform-function-18x20.png 18w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/p>\n<p>Haga clic en <strong>Siguiente A\u00f1adir c\u00f3digo<\/strong> para a\u00f1adir el c\u00f3digo JavaScript del <strong>transformar<\/strong> funci\u00f3n.<\/p>\n<p>En la pantalla de la funci\u00f3n de transformaci\u00f3n, sustituya el c\u00f3digo de la plantilla por el c\u00f3digo siguiente.<\/p>\n<p>La funci\u00f3n incluye sentencias log() para registrar el documento original, el documento transformado y cualquier error. Si\u00e9ntase libre de cambiar estos seg\u00fan sea necesario. Las entradas Eventing archivo de registro es eventing.log se puede encontrar en el @eventing registro de la aplicaci\u00f3n. V\u00e9ase <a href=\"https:\/\/docs.couchbase.com\/server\/current\/eventing\/eventing-debugging-and-diagnosability.html#application-logs\">este enlace<\/a> para m\u00e1s informaci\u00f3n sobre el nombre del archivo de registro y c\u00f3mo verlos.<\/p>\n<p>Puede ampliar f\u00e1cilmente la capacidad de esta funci\u00f3n para realizar otras transformaciones a\u00f1adiendo el c\u00f3digo necesario en la funci\u00f3n transformValues(). Si necesita realizar alg\u00fan cambio en la funci\u00f3n, deber\u00e1 <a href=\"https:\/\/docs.couchbase.com\/server\/current\/eventing\/eventing-lifecycle.html\">pausarlo o desinstalarlo, editar el JavaScript y, a continuaci\u00f3n, reanudarlo o volver a instalarlo<\/a>.<\/p>\n<pre class=\"lang:default decode:true\">function OnUpdate(doc, meta) {\r\n    log(\"original document: \", doc);\r\n\r\n    try {\r\n      \/\/ transform document\r\n      var newDoc = transformValues(null, \"\", doc);\r\n\r\n      \/\/ add a type attribute based on the document ID (available in meta.id)\r\n      newDoc[\"type\"] = getTypeFromId(meta.id);\r\n\r\n      \/\/ generate a document ID for the transformed document based on the type and the _id attribute value\r\n      var id = generateId(newDoc);\r\n      log(\"transformed document (id = \" + id + \"): \", newDoc);\r\n\r\n      \/\/ write transformed document to target bucket with generated ID\r\n      target[id] = newDoc;\r\n    } catch (e) {\r\n      log(\"error transforming document \" + meta.id + \". See error bucket for more details.\");\r\n\r\n      \/\/ if there are any errors, store error message in the error attribute\r\n      doc[\"error\"] = e;\r\n\r\n      \/\/ write untransformed document to error bucket with original ID\r\n      error[meta.id] = doc;\r\n    }\r\n}\r\n\r\nfunction OnDelete(meta) {\r\n}\r\n\r\n\/\/ This is a recursive function that will iterate over all properties in the document (including arrays &amp; sub-objects)\r\n\/\/ It will transform Extended JSON to standard JSON.\r\nfunction transformValues(parentObj, parentProperty, obj) {\r\n  var propertyType = \"\";\r\n\r\n  \/\/ for every property in the object\r\n  for (var property in obj) {\r\n    if (obj.hasOwnProperty(property) &amp;&amp; obj[property] != null) {\r\n      switch (property) {\r\n        case \"$oid\":\r\n          \/\/ convert parentObj.parentProperty = {\"$oid\":\"3487634876\"}\r\n          \/\/ to parentObj.parentProperty = \"3487634876\"\r\n          parentObj[parentProperty] = obj[property];\r\n          break;\r\n\r\n        case \"$date\":\r\n          if (obj[\"$date\"][\"$numberLong\"] != null) {\r\n            \/\/ convert parentObj.parentProperty = {\"$date\":{\"$numberLong\":\"-2418768000000\"}}\r\n            \/\/ to parentObj.parentProperty = -2418768000000\r\n            parentObj[parentProperty] = Number(obj[\"$date\"][\"$numberLong\"]);\r\n            break;\r\n          }\r\n\r\n          \/\/ convert parentObj.parentProperty = {\"$date\":\"1983-04-27T20:39:15Z\"}}\r\n          \/\/ to parentObj.parentProperty = \"1983-04-27T20:39:15Z\"\r\n          parentObj[parentProperty] = obj[\"$date\"];\r\n          break;\r\n\r\n        case \"$numberInt\":\r\n        case \"$numberDecimal\":\r\n        case \"$numberLong\":\r\n        case \"$numberDouble\":\r\n          \/\/ convert parentObj.parentProperty = {\"$numberInt\":\"1\"}\r\n          \/\/ to parentObj.parentProperty = 1\r\n          parentObj[parentProperty] = Number(obj[property]);\r\n          break;\r\n\r\n        \/\/ !!! This function can be extended by adding additional case statements here !!!\r\n\r\n        default:\r\n          \/\/ otherwise, check the property type\r\n          propertyType = determineType(obj[property]);\r\n          switch (propertyType) {\r\n            case \"Object\":\r\n              \/\/ if the property is an object, recursively transform the object\r\n              transformValues(obj, property, obj[property]);\r\n              break;\r\n\r\n            case \"Array\":\r\n              \/\/ if the property is an array, transform every element in the array\r\n              transformArray(obj[property]);\r\n              break;\r\n\r\n            default:\r\n              \/\/ otherwise, do nothing\r\n              break;\r\n          }\r\n      }\r\n    }\r\n  }\r\n\r\n  return obj;\r\n}\r\n\r\n\/\/ Determine the type of the specified object\r\nfunction determineType(obj) {\r\n  return obj == null ? \"null\" : obj.constructor.name;\r\n}\r\n\r\n\/\/ Transform every element in the specified array\r\nfunction transformArray(obj) {\r\n  for (var i = 0; i &lt; obj.length; i++) {\r\n    transformValues(obj, i, obj[i]);\r\n  }\r\n}\r\n\r\n\/\/ Get document type from specified id.\r\n\/\/ This function expects that documents will be imported with IDs in the following format:\r\n\/\/ example: &lt;document type&gt;:12\r\nfunction getTypeFromId(id) {\r\n  return id.split(\":\")[0];\r\n}\r\n\r\n\/\/ Generate a document ID for the specified document.\r\n\/\/ The new ID will be based on the value of the type attribute and the value of the _id attribute:\r\n\/\/ &lt;type&gt;:&lt;_id&gt;\r\nfunction generateId(document) {\r\n  var documentId = document[\"_id\"];\r\n  if (determineType(documentId) != \"String\") {\r\n    throw \"'_id' value must be a String: _id = '\" + documentId + \"'\";\r\n  }\r\n\r\n  return document[\"type\"] + \":\" + documentId;\r\n}<\/pre>\n<p>Haga clic en <strong>Guardar<\/strong> para guardar el c\u00f3digo y pulse <strong>&lt; volver a Concurso completo<\/strong> para volver a la <strong>Eventos<\/strong> de la consola.<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-8999\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/07\/13.-transform-code.png\" alt=\"\" width=\"1444\" height=\"756\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/13.-transform-code.png 1444w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/13.-transform-code-300x157.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/13.-transform-code-1024x536.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/13.-transform-code-768x402.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/13.-transform-code-20x10.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/13.-transform-code-1320x691.png 1320w\" sizes=\"auto, (max-width: 1444px) 100vw, 1444px\" \/><\/p>\n<p>Ver\u00e1 el nuevo <strong>transformar<\/strong> pero es necesario desplegarla. Haga clic en el bot\u00f3n <strong>transformar<\/strong> y, a continuaci\u00f3n, pulse <strong>Despliegue<\/strong>.<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-9000\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/07\/14.-Eventing-1-function-undeployed.png\" alt=\"\" width=\"1443\" height=\"566\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/14.-Eventing-1-function-undeployed.png 1443w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/14.-Eventing-1-function-undeployed-300x118.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/14.-Eventing-1-function-undeployed-1024x402.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/14.-Eventing-1-function-undeployed-768x301.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/14.-Eventing-1-function-undeployed-20x8.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/14.-Eventing-1-function-undeployed-1320x518.png 1320w\" sizes=\"auto, (max-width: 1443px) 100vw, 1443px\" \/><\/p>\n<p>Confirme el despliegue de la funci\u00f3n con la configuraci\u00f3n por defecto pulsando <b>Funci\u00f3n de despliegue.<\/b><\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-9001\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/07\/15.-Deploy-transform-function.png\" alt=\"\" width=\"379\" height=\"258\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/15.-Deploy-transform-function.png 379w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/15.-Deploy-transform-function-300x204.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/15.-Deploy-transform-function-235x160.png 235w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/15.-Deploy-transform-function-20x14.png 20w\" sizes=\"auto, (max-width: 379px) 100vw, 379px\" \/><\/p>\n<p>Una vez desplegada la funci\u00f3n, el estado es <strong>desplegado<\/strong>.<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-9002\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/07\/16.-Eventing-1-function-deployed.png\" alt=\"\" width=\"1439\" height=\"566\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/16.-Eventing-1-function-deployed.png 1439w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/16.-Eventing-1-function-deployed-300x118.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/16.-Eventing-1-function-deployed-1024x403.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/16.-Eventing-1-function-deployed-768x302.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/16.-Eventing-1-function-deployed-20x8.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/16.-Eventing-1-function-deployed-1320x519.png 1320w\" sizes=\"auto, (max-width: 1439px) 100vw, 1439px\" \/><\/p>\n<p>Ahora todo est\u00e1 listo para importar los datos de exportaci\u00f3n de MongoDB a Couchbase y transformarlos en tiempo real.<\/p>\n<h2>Importar documentos con cbimport<\/h2>\n<p>Utiliza el <a href=\"https:\/\/docs.couchbase.com\/server\/current\/tools\/cbimport-json.html\">Utilidad cbimport<\/a> para importar los archivos de exportaci\u00f3n de MongoDB. Antes de importar datos es importante entender la sintaxis del comando y lo que est\u00e1 haciendo.<\/p>\n<p>He aqu\u00ed un ejemplo de comando cbimport:<\/p>\n<pre class=\"lang:default decode:true\">$ cbimport json -c &lt;cluster&gt; -u &lt;admin username&gt; -p &lt;admin password&gt; -b &lt;bucket&gt; -d &lt;import file&gt; -f &lt;file format&gt; -g &lt;key generator&gt;<\/pre>\n<p>Para importar MongoDB <strong>comentarios<\/strong> ejecute el siguiente comando. Tenga en cuenta que la ubicaci\u00f3n de la utilidad cbimport var\u00eda en funci\u00f3n del sistema operativo y se documenta aqu\u00ed: <a href=\"https:\/\/docs.couchbase.com\/server\/current\/cli\/cli-intro.html\">Referencia CLI<\/a>.<\/p>\n<pre class=\"lang:default decode:true\">$ &lt;path_to_cbimport&gt;\/cbimport json -c &lt;cluster&gt; -u &lt;admin username&gt; -p &lt;admin password&gt; -b incoming -d file:\/\/&lt;path to comments.json&gt;\/comments.json -f list -g comment:#MONO_INCR#<\/pre>\n<p>El comando se conectar\u00e1 al cl\u00faster especificado (es decir, -c couchbase:\/\/127.0.0.1) utilizando las credenciales de administrador suministradas (es decir, -u Administrador -p contrase\u00f1a).<\/p>\n<p>El comando importar\u00e1 datos JSON de comments.json. Compruebe el formato del archivo comments.json exportado y especifique el valor correcto. <a href=\"https:\/\/docs.couchbase.com\/server\/current\/tools\/cbimport-json.html#dataset-formats\">opci\u00f3n de formato del conjunto de datos<\/a> seg\u00fan el formato del archivo de exportaci\u00f3n. Mi archivo de exportaci\u00f3n sigue el formato <a href=\"https:\/\/docs.couchbase.com\/server\/current\/tools\/cbimport-json.html#list\">formato de lista<\/a> que contiene una \u00fanica lista JSON en la que cada elemento de la lista representa un documento independiente (-f list).<\/p>\n<p>Los documentos se escriben en el bucket de entrada (-b incoming) utilizando una clave generada con el formato especificado (-g comment:#MONO_INCR#). En este comando, el formato especifica que cada clave de documento comenzar\u00e1 por \"comment:\". La direcci\u00f3n <a href=\"https:\/\/docs.couchbase.com\/server\/current\/tools\/cbimport-json.html#key-generators\">Funci\u00f3n MONO_INCR<\/a> se incrementa en 1 cada vez que se llama, de modo que las claves resultantes son comentario:1, comentario:2, etc.<\/p>\n<p>Una vez completado, ver\u00e1 el siguiente resultado:<\/p>\n<pre class=\"lang:default decode:true\">Json `file:\/\/comments.json` imported to `https:\/\/127.0.0.1:8091` successfully.\r\nDocuments imported: 50304 Documents failed: 0<\/pre>\n<p>Ir a la <strong>Cubos<\/strong> y confirme que el <strong>sample_mflix<\/strong> contiene 50.304 documentos.<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-9003\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/07\/17.-Buckets-after-comments-import.png\" alt=\"\" width=\"1443\" height=\"566\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/17.-Buckets-after-comments-import.png 1443w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/17.-Buckets-after-comments-import-300x118.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/17.-Buckets-after-comments-import-1024x402.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/17.-Buckets-after-comments-import-768x301.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/17.-Buckets-after-comments-import-20x8.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/17.-Buckets-after-comments-import-1320x518.png 1320w\" sizes=\"auto, (max-width: 1443px) 100vw, 1443px\" \/><\/p>\n<p>Para importar MongoDB <strong>pel\u00edculas<\/strong> ejecute el siguiente comando.<\/p>\n<pre class=\"lang:default decode:true\">$ &lt;path_to_cbimport&gt;\/cbimport json -c &lt;cluster&gt; -u &lt;admin username&gt; -p &lt;admin password&gt; -b incoming -d file:\/\/&lt;path to movies.json&gt;\/movies.json -f list -g movie:#MONO_INCR#<\/pre>\n<p>Una vez completado, ver\u00e1 el siguiente resultado:<\/p>\n<pre class=\"lang:default decode:true\">Json `file:\/\/movies.json` imported to `https:\/\/127.0.0.1:8091` successfully.\r\nDocuments imported: 23539 Documents failed: 0<\/pre>\n<p>Ir a la <strong>Cubos<\/strong> y confirme que el <strong>sample_mflix<\/strong> bucket contiene 73.843 documentos.<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-9004\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/07\/18.-Buckets-after-movies-import.png\" alt=\"\" width=\"1442\" height=\"566\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/18.-Buckets-after-movies-import.png 1442w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/18.-Buckets-after-movies-import-300x118.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/18.-Buckets-after-movies-import-1024x402.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/18.-Buckets-after-movies-import-768x301.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/18.-Buckets-after-movies-import-20x8.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/18.-Buckets-after-movies-import-1320x518.png 1320w\" sizes=\"auto, (max-width: 1442px) 100vw, 1442px\" \/><\/p>\n<p>Ahora comprueba dos de los documentos transformados. Vaya al <strong>Documentos<\/strong> y aseg\u00farese de que el <strong>Cubo<\/strong> se establece en <strong>sample_mflix<\/strong>. Haga clic en id <strong>comment:5a9427648b0beebeb69579cc<\/strong> (el primer documento de la lista):<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-9005\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/07\/19.-sample_mflix-documents.png\" alt=\"\" width=\"1443\" height=\"566\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/19.-sample_mflix-documents.png 1443w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/19.-sample_mflix-documents-300x118.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/19.-sample_mflix-documents-1024x402.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/19.-sample_mflix-documents-768x301.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/19.-sample_mflix-documents-20x8.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/19.-sample_mflix-documents-1320x518.png 1320w\" sizes=\"auto, (max-width: 1443px) 100vw, 1443px\" \/><\/p>\n<p>F\u00edjate en el contenido:<\/p>\n<pre class=\"lang:default decode:true\">{\r\n  \"_id\": \"5a9427648b0beebeb69579cc\",\r\n  \"name\": \"Andrea Le\",\r\n  \"email\": \"andrea_le@fakegmail.com\",\r\n  \"movie_id\": \"573a1390f29313caabcd418c\",\r\n  \"text\": \"Rem officiis eaque repellendus amet eos doloribus. Porro dolor voluptatum voluptates neque culpa molestias. Voluptate unde nulla temporibus ullam.\",\r\n  \"date\": \"2012-03-26T23:20:16Z\",\r\n  \"type\": \"comment\"\r\n}<\/pre>\n<p>Compar\u00e1ndolo con los datos exportados (busque 5a9427648b0beebeb69579cc en comments.json):<\/p>\n<pre class=\"lang:default decode:true\">{\r\n  \"_id\":{\"$oid\":\"5a9427648b0beebeb69579cc\"},\r\n  \"name\":\"Andrea Le\",\r\n  \"email\":\"andrea_le@fakegmail.com\",\r\n  \"movie_id\":{\"$oid\":\"573a1390f29313caabcd418c\"},\r\n  \"text\":\"Rem officiis eaque repellendus amet eos doloribus. Porro dolor voluptatum voluptates neque culpa molestias. Voluptate unde nulla temporibus ullam.\",\r\n  \"date\": {\"$date\": \"2012-03-26T23:20:16Z\"}\r\n}<\/pre>\n<p>La funci\u00f3n de transformaci\u00f3n ha cambiado los valores JSON extendidos _id, movie_id y date. Observe que se ha a\u00f1adido un atributo type basado en el prefijo de la clave del documento (recuerde que especificamos comment como prefijo de la clave al importar los datos).<\/p>\n<p>Cierre el editor de documentos cuando haya terminado de revisar el contenido del documento.<\/p>\n<p>En el <strong>ID del documento<\/strong> introducir campo <strong>movie:573a1390f29313caabcd4135<\/strong>pulse <strong>Recuperar documentos<\/strong>y haga clic en id <strong>movie:573a1390f29313caabcd4135<\/strong>.<\/p>\n<p align=\"center\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-9006\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/07\/20.-movie-document.png\" alt=\"\" width=\"1443\" height=\"566\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/20.-movie-document.png 1443w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/20.-movie-document-300x118.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/20.-movie-document-1024x402.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/20.-movie-document-768x301.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/20.-movie-document-20x8.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/07\/20.-movie-document-1320x518.png 1320w\" sizes=\"auto, (max-width: 1443px) 100vw, 1443px\" \/><\/p>\n<h4><\/h4>\n<p>F\u00edjate en el contenido:<\/p>\n<pre class=\"lang:default decode:true\">{\r\n  \"_id\": \"573a1390f29313caabcd4135\",\r\n  \"plot\": \"Three men hammer on an anvil \u2026\",\r\n  \"genres\": [ \"Short\" ],\r\n  \"runtime\": 1,\r\n  \"cast\": [ \"Charles Kayser\", \"John Ott\" ],\r\n  \"num_mflix_comments\": 1,\r\n  \"title\": \"Blacksmith Scene\",\r\n  \"fullplot\": \"A stationary camera looks at a large anvil \u2026\",\r\n  \"countries\": [ \"USA\" ],\r\n  \"released\": -2418768000000,\r\n  \"directors\": [ \"William K.L. Dickson\" ],\r\n  \"rated\": \"UNRATED\",\r\n  \"awards\": {\r\n    \"wins\": 1,\r\n    \"nominations\": 0,\r\n    \"text\": \"1 win.\"\r\n  },\r\n  \"lastupdated\": \"2015-08-26 00:03:50.133000000\",\r\n  \"year\": 1893,\r\n  \"imdb\": {\r\n    \"rating\": 6.2,\r\n    \"votes\": 1189,\r\n    \"id\": 5\r\n  },\r\n  \"type\": \"movie\",\r\n  \"tomatoes\": {\r\n    \"viewer\": {\r\n      \"rating\": 3,\r\n      \"numReviews\": 184,\r\n      \"meter\": 32\r\n    },\r\n    \"lastUpdated\": \"2015-06-28T18:34:09Z\"\r\n  }\r\n}<\/pre>\n<p>Compar\u00e1ndolo con los datos exportados (busque 573a1390f29313caabcd4135 en movies.json):<\/p>\n<pre class=\"lang:default decode:true\">{\r\n  \"_id\": {\"$oid\": \"573a1390f29313caabcd4135\"},\r\n  \"plot\": \"Three men hammer on an \u2026\",\r\n  \"genres\": [ \"Short\" ],\r\n  \"runtime\": 1,\r\n  \"cast\": [ \"Charles Kayser\", \"John Ott\" ],\r\n  \"num_mflix_comments\": 1,\r\n  \"title\": \"Blacksmith Scene\",\r\n  \"fullplot\": \"A stationary camera looks at a large anvil \u2026\",\r\n  \"countries\": [ \"USA\" ],\r\n  \"released\": {\"$date\": {\"$numberLong\": \"-2418768000000\"}},\r\n  \"directors\":[ \"William K.L. Dickson\" ],\r\n  \"rated\": \"UNRATED\",\r\n  \"awards\": {\r\n    \"wins\": 1,\r\n    \"nominations\": 0,\r\n    \"text\": \"1 win.\"\r\n  },\r\n  \"lastupdated\": \"2015-08-26 00:03:50.133000000\",\r\n  \"year\": 1893,\r\n  \"imdb\": {\r\n    \"rating\": 6.2,\r\n    \"votes\": 1189,\r\n    \"id\": 5\r\n  },\r\n  \"type\": \"movie\",\r\n  \"tomatoes\": {\r\n    \"viewer\": {\r\n      \"rating\": 3,\r\n      \"numReviews\" 184,\r\n      \"meter\": 32\r\n    },\r\n    \"lastUpdated\": {\"$date\": \"2015-06-28T18:34:09Z\"}\r\n  }\r\n}<\/pre>\n<p>La funci\u00f3n de transformaci\u00f3n ha cambiado los valores JSON extendidos _id, released y tomatoes.lastUpdated. Observe que en este caso no se ha a\u00f1adido un atributo de tipo. El documento exportado ya conten\u00eda un atributo type, por lo que la funci\u00f3n de transformaci\u00f3n no a\u00f1adi\u00f3 uno, sino que estableci\u00f3 el valor bas\u00e1ndose en el prefijo de la clave (recuerde que especificamos movie como prefijo de la clave al importar los datos).<\/p>\n<p>Cierre el editor de documentos cuando haya terminado de revisar el contenido del documento.<\/p>\n<p><strong style=\"color: #343e47; font-family: Lato, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 50px;\">El futuro<\/strong><\/p>\n<p>Si no tiene previsto importar m\u00e1s datos de exportaci\u00f3n de MongoDB, puede desinstalar la funci\u00f3n de transformaci\u00f3n y eliminar los buckets de entrada y error.<\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li>Un futuro art\u00edculo cubrir\u00e1 c\u00f3mo actualizar el c\u00f3digo de cliente existente para utilizar el SDK de Couchbase.<\/li>\n<li>Aproveche nuestra formaci\u00f3n gratuita en l\u00ednea disponible en <a href=\"https:\/\/learn.couchbase.com\/\">https:\/\/learn.couchbase.com<\/a> para obtener m\u00e1s informaci\u00f3n sobre Couchbase.<\/li>\n<li>Consulte los distintos <a href=\"https:\/\/docs.couchbase.com\/server\/current\/develop\/integrations.html#ide-integrations\">IDEs para desarrolladores de Couchbase-JetBrains, VSCode<\/a>-para los que tenemos plugins.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Para obtener informaci\u00f3n detallada sobre los diferentes modelos de documentos entre Couchbase y MongoDB, el modelado de datos y el esquema de MongoDB, y otras formas de comparar MongoDB vs. Couchbase, consulte este documento: <a href=\"https:\/\/drive.google.com\/file\/d\/14YQuCAGSsvNcnlBJkM6QnnLNzo3GadTk\/view\">Couchbase: Mejor que MongoDB en todos los sentidos<\/a>.<\/p>\n<p>Descubra por qu\u00e9 otras empresas eligen Couchbase en lugar de MongoDB:<\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li><a href=\"https:\/\/www.couchbase.com\/blog\/es\/customers\/directv\/\">DIRECTV<\/a><\/li>\n<li><a href=\"https:\/\/www.couchbase.com\/blog\/es\/customers\/viber\/\">Viber<\/a><\/li>\n<li><a href=\"https:\/\/www.couchbase.com\/blog\/es\/customers\/nuance\/\">Nuance<\/a><\/li>\n<li><a href=\"https:\/\/www.youtube.com\/watch?list=PLcspbWiU9RuunKnZwfE757B6-xsaiJV84&amp;time_continue=2&amp;v=UD_4zuga1kk\">Grapas<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>","protected":false},"excerpt":{"rendered":"<p>Prologue This article guides you through a one-time MongoDB migration to Couchbase. You will learn how to export from the MongoDB data structure, import to Couchbase, and do some basic transformation on those documents. All code from this blog is [&hellip;]<\/p>","protected":false},"author":1352,"featured_media":9927,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1815,1816,1819,2273],"tags":[1309],"ppma_author":[9091],"class_list":["post-7288","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-best-practices-and-tutorials","category-couchbase-server","category-data-modeling","category-eventing","tag-mongodb"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.0 (Yoast SEO v26.0) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How to Migrate MongoDB Database to Couchbase - Prerequisites<\/title>\n<meta name=\"description\" content=\"Need to know how to migrate MongoDB database to Couchbase? This blog post will help to guide you through the basics of a one-time MongoDB migration.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/es\/migrating-data-from-mongodb-to-couchbase\/\" \/>\n<meta property=\"og:locale\" content=\"es_MX\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Migrating Data from MongoDB to Couchbase\" \/>\n<meta property=\"og:description\" content=\"Need to know how to migrate MongoDB database to Couchbase? This blog post will help to guide you through the basics of a one-time MongoDB migration.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/es\/migrating-data-from-mongodb-to-couchbase\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2020-07-31T05:17:30+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T05:39:27+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/07\/mongodb-to-couchbase-blogbanner.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1575\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Douglas Bonser, Principal Solution Engineer, Couchbase\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Douglas Bonser, Principal Solution Engineer, Couchbase\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"13 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/migrating-data-from-mongodb-to-couchbase\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/migrating-data-from-mongodb-to-couchbase\/\"},\"author\":{\"name\":\"Douglas Bonser, Principal Solution Engineer, Couchbase\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/7fdd6feab8e25100caf61bb7836ee0ff\"},\"headline\":\"Migrating Data from MongoDB to Couchbase\",\"datePublished\":\"2020-07-31T05:17:30+00:00\",\"dateModified\":\"2025-06-14T05:39:27+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/migrating-data-from-mongodb-to-couchbase\/\"},\"wordCount\":1962,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/migrating-data-from-mongodb-to-couchbase\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/07\/mongodb-to-couchbase-blogbanner.jpg\",\"keywords\":[\"mongodb\"],\"articleSection\":[\"Best Practices and Tutorials\",\"Couchbase Server\",\"Data Modeling\",\"Eventing\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/migrating-data-from-mongodb-to-couchbase\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/migrating-data-from-mongodb-to-couchbase\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/migrating-data-from-mongodb-to-couchbase\/\",\"name\":\"How to Migrate MongoDB Database to Couchbase - Prerequisites\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/migrating-data-from-mongodb-to-couchbase\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/migrating-data-from-mongodb-to-couchbase\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/07\/mongodb-to-couchbase-blogbanner.jpg\",\"datePublished\":\"2020-07-31T05:17:30+00:00\",\"dateModified\":\"2025-06-14T05:39:27+00:00\",\"description\":\"Need to know how to migrate MongoDB database to Couchbase? This blog post will help to guide you through the basics of a one-time MongoDB migration.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/migrating-data-from-mongodb-to-couchbase\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/migrating-data-from-mongodb-to-couchbase\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/migrating-data-from-mongodb-to-couchbase\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/07\/mongodb-to-couchbase-blogbanner.jpg\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/07\/mongodb-to-couchbase-blogbanner.jpg\",\"width\":1575,\"height\":628,\"caption\":\"Two logos showing a MongoDB migration to Couchbase\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/migrating-data-from-mongodb-to-couchbase\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Migrating Data from MongoDB to Couchbase\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/7fdd6feab8e25100caf61bb7836ee0ff\",\"name\":\"Douglas Bonser, Principal Solution Engineer, Couchbase\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/e922810e11bd43dd211ba0ee960f9738\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/68f7547e24c39852e700940d8209edf75f6b9cd64ba057ce1e11313d9230ab84?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/68f7547e24c39852e700940d8209edf75f6b9cd64ba057ce1e11313d9230ab84?s=96&d=mm&r=g\",\"caption\":\"Douglas Bonser, Principal Solution Engineer, Couchbase\"},\"description\":\"Douglas Bonser is a Principal Solutions Engineer at Couchbase and has been working in IT and technology since 1991. He is based in the Dallas\/Ft. Worth area.\",\"url\":\"https:\/\/www.couchbase.com\/blog\/es\/author\/douglas-bonsercouchbase-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"How to Migrate MongoDB Database to Couchbase - Prerequisites","description":"Need to know how to migrate MongoDB database to Couchbase? This blog post will help to guide you through the basics of a one-time MongoDB migration.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.couchbase.com\/blog\/es\/migrating-data-from-mongodb-to-couchbase\/","og_locale":"es_MX","og_type":"article","og_title":"Migrating Data from MongoDB to Couchbase","og_description":"Need to know how to migrate MongoDB database to Couchbase? This blog post will help to guide you through the basics of a one-time MongoDB migration.","og_url":"https:\/\/www.couchbase.com\/blog\/es\/migrating-data-from-mongodb-to-couchbase\/","og_site_name":"The Couchbase Blog","article_published_time":"2020-07-31T05:17:30+00:00","article_modified_time":"2025-06-14T05:39:27+00:00","og_image":[{"width":1575,"height":628,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/07\/mongodb-to-couchbase-blogbanner.jpg","type":"image\/jpeg"}],"author":"Douglas Bonser, Principal Solution Engineer, Couchbase","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Douglas Bonser, Principal Solution Engineer, Couchbase","Est. reading time":"13 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/migrating-data-from-mongodb-to-couchbase\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/migrating-data-from-mongodb-to-couchbase\/"},"author":{"name":"Douglas Bonser, Principal Solution Engineer, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/7fdd6feab8e25100caf61bb7836ee0ff"},"headline":"Migrating Data from MongoDB to Couchbase","datePublished":"2020-07-31T05:17:30+00:00","dateModified":"2025-06-14T05:39:27+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/migrating-data-from-mongodb-to-couchbase\/"},"wordCount":1962,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/migrating-data-from-mongodb-to-couchbase\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/07\/mongodb-to-couchbase-blogbanner.jpg","keywords":["mongodb"],"articleSection":["Best Practices and Tutorials","Couchbase Server","Data Modeling","Eventing"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/migrating-data-from-mongodb-to-couchbase\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/migrating-data-from-mongodb-to-couchbase\/","url":"https:\/\/www.couchbase.com\/blog\/migrating-data-from-mongodb-to-couchbase\/","name":"How to Migrate MongoDB Database to Couchbase - Prerequisites","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/migrating-data-from-mongodb-to-couchbase\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/migrating-data-from-mongodb-to-couchbase\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/07\/mongodb-to-couchbase-blogbanner.jpg","datePublished":"2020-07-31T05:17:30+00:00","dateModified":"2025-06-14T05:39:27+00:00","description":"Need to know how to migrate MongoDB database to Couchbase? This blog post will help to guide you through the basics of a one-time MongoDB migration.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/migrating-data-from-mongodb-to-couchbase\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/migrating-data-from-mongodb-to-couchbase\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/migrating-data-from-mongodb-to-couchbase\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/07\/mongodb-to-couchbase-blogbanner.jpg","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/07\/mongodb-to-couchbase-blogbanner.jpg","width":1575,"height":628,"caption":"Two logos showing a MongoDB migration to Couchbase"},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/migrating-data-from-mongodb-to-couchbase\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Migrating Data from MongoDB to Couchbase"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"El blog de Couchbase","description":"Couchbase, la base de datos NoSQL","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"El blog de Couchbase","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/7fdd6feab8e25100caf61bb7836ee0ff","name":"Douglas Bonser, Ingeniero principal de soluciones, Couchbase","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/e922810e11bd43dd211ba0ee960f9738","url":"https:\/\/secure.gravatar.com\/avatar\/68f7547e24c39852e700940d8209edf75f6b9cd64ba057ce1e11313d9230ab84?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/68f7547e24c39852e700940d8209edf75f6b9cd64ba057ce1e11313d9230ab84?s=96&d=mm&r=g","caption":"Douglas Bonser, Principal Solution Engineer, Couchbase"},"description":"Douglas Bonser es Ingeniero Principal de Soluciones en Couchbase y lleva trabajando en TI y tecnolog\u00eda desde 1991. Reside en el \u00e1rea de Dallas\/Ft. Worth.","url":"https:\/\/www.couchbase.com\/blog\/es\/author\/douglas-bonsercouchbase-com\/"}]}},"authors":[{"term_id":9091,"user_id":1352,"is_guest":0,"slug":"douglas-bonsercouchbase-com","display_name":"Douglas Bonser, Principal Solution Engineer, Couchbase","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/68f7547e24c39852e700940d8209edf75f6b9cd64ba057ce1e11313d9230ab84?s=96&d=mm&r=g","author_category":"","last_name":"Bonser, Principal Solution Engineer, Couchbase","first_name":"Douglas","job_title":"","user_url":"","description":"Douglas Bonser es Ingeniero Principal de Soluciones en Couchbase y lleva trabajando en TI y tecnolog\u00eda desde 1991. Reside en el \u00e1rea de Dallas\/Ft. Worth."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/7288","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/users\/1352"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/comments?post=7288"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/7288\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media\/9927"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media?parent=7288"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/categories?post=7288"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/tags?post=7288"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/ppma_author?post=7288"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}