{"id":8478,"date":"2020-04-25T12:51:59","date_gmt":"2020-04-25T19:51:59","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=8478"},"modified":"2025-06-13T23:42:43","modified_gmt":"2025-06-14T06:42:43","slug":"introduction-to-couchbase-for-mongodb-developers-and-experts","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/es\/introduction-to-couchbase-for-mongodb-developers-and-experts\/","title":{"rendered":"Introducci\u00f3n a Couchbase para desarrolladores de MongoDB y expertos en NoSQL"},"content":{"rendered":"<blockquote>\n<h4>Hace seis mil a\u00f1os, los sumerios inventaron la escritura para procesar transacciones - <a href=\"https:\/\/www.amazon.com\/Transaction-Processing-Concepts-Techniques-Management\/dp\/1558601902\">Gray &amp; Reuter<\/a><\/h4>\n<\/blockquote>\n<p><span style=\"font-weight: 400\">Se mire por donde se mire, MongoDB es una popular base de datos JSON orientada a documentos. En la \u00faltima docena de a\u00f1os, ha crecido desde sus humildes comienzos de un \u00fanico bloqueo por base de datos a una moderna transacci\u00f3n multi-documento con aislamiento instant\u00e1neo.  MongoDB University ha formado a un gran n\u00famero de desarrolladores para que desarrollen en la base de datos MongoDB.<\/span><\/p>\n<p>Actualmente existen muchas bases de datos JSON. <span style=\"font-weight: 400\">Aunque es f\u00e1cil empezar con MongoDB para aprender NoSQL y el esquema JSON flexible, muchos clientes eligen Couchbase por rendimiento, escala y SQL. <\/span><span style=\"font-weight: 400\">A medida que avances en la evaluaci\u00f3n y evoluci\u00f3n de tu base de datos, deber\u00edas aprender sobre otras bases de datos JSON. Estamos trabajando en un curso de formaci\u00f3n online para que los expertos en MongoDB aprendan Couchbase f\u00e1cilmente.  Hasta que lo publiquemos, tendr\u00e1s que leer este art\u00edculo :-)\u00a0 <\/span><\/p>\n<p><span style=\"font-weight: 400\">Si conoces RDBMS como Microsoft SQL Server y Oracle, tenemos cursos f\u00e1ciles de seguir para aprender a hacer el mapeo de tus conocimientos de bases de datos a Couchbase con estos dos cursos:<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400\"><a href=\"https:\/\/learn.couchbase.com\/store\/404716-cb116m-intro-to-couchbase-for-mssql-experts\"><span style=\"font-weight: 400\">CB116m - Introducci\u00f3n a Couchbase para expertos en MSSQL<\/span><\/a><\/li>\n<li style=\"font-weight: 400\"><a href=\"https:\/\/learn.couchbase.com\/store\/400375-cb116o-introduction-to-couchbase-for-oracle-experts\"><span style=\"font-weight: 400\">CB116o - Introducci\u00f3n a Couchbase para expertos de Oracle<\/span><\/a><\/li>\n<\/ol>\n<p><strong>RESUMEN<\/strong><\/p>\n<p>MongoDB y Couchbase tienen muchas cosas en com\u00fan. Ambos son NoSQL <a href=\"https:\/\/www.couchbase.com\/blog\/es\/distributed-databases-overview\/\">bases de datos distribuidas<\/a>; Ambos utilizan el modelo JSON; Ambos tienen lenguajes de consulta de alto nivel con soporte para operaciones select-join-project; Ambos tienen \u00edndices secundarios; Ambos tienen un optimizador que elige el plan de consulta autom\u00e1ticamente. Ambos soportan la replicaci\u00f3n intra- e inter-cluster.<\/p>\n<p>Como era de esperar, hay diferencias.  Algunas son m\u00e1s significativas que otras.  Couchbase est\u00e1 dise\u00f1ado para ser distribuido desde el principio.  Por ejemplo, el contenedor de datos Bucket est\u00e1 siempre distribuido - sin nada que fragmentar.  Simplemente a\u00f1ade nuevos nodos y el sistema distribuir\u00e1 autom\u00e1ticamente. La replicaci\u00f3n dentro del cl\u00faster no requiere nuevos servidores: basta con establecer el n\u00famero de r\u00e9plicas y listo. Desde el punto de vista de la interacci\u00f3n del desarrollador, la gran diferencia es el lenguaje de consulta en s\u00ed: MongoDB tiene un <a href=\"https:\/\/docs.mongodb.com\/manual\/tutorial\/query-documents\/\">lenguaje de consulta propio<\/a> y Couchbase tiene <a href=\"https:\/\/docs.couchbase.com\/server\/6.5\/n1ql\/n1ql-language-reference\/selectintro.html\">N1QL - SQL para JSON<\/a>. MongoDB tambi\u00e9n utiliza su \u00edndice basado en B-Tree para la b\u00fasqueda y recientemente ha publicado <a href=\"https:\/\/docs.atlas.mongodb.com\/reference\/atlas-search\/query-syntax\/\">1TP4Buscarbeta<\/a> para el servicio Atlas utilizando Apache Lucene; Couchbase tiene una funci\u00f3n integrada de <a href=\"https:\/\/docs.couchbase.com\/server\/current\/fts\/fts-supported-queries.html\">B\u00fasqueda de texto completo<\/a>.<\/p>\n<p>Con suerte, las diferencias en Couchbase son las que hacen tu vida m\u00e1s f\u00e1cil.  Vamos a profundizar.<\/p>\n<p><span style=\"color: #0000ff\"><b>TEMAS DE ALTO NIVEL<\/b><\/span><\/p>\n<ol>\n<li>Recursos<\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Arquitectura<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Objetos de la base de datos<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Tipos de datos<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Modelo de datos<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">SDK<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Lenguaje de consulta<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">\u00cdndices<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Optimizador<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Transacciones<\/span><\/li>\n<li>Anal\u00edtica<\/li>\n<\/ol>\n<h4 role=\"presentation\"><span style=\"color: #0000ff\"><strong>RECURSOS<\/strong><\/span><\/h4>\n<div dir=\"ltr\" align=\"left\">\n<table>\n<tbody>\n<tr>\n<td><\/td>\n<td>\n<h4><strong>MongoDB<\/strong><\/h4>\n<\/td>\n<td>\n<h4><strong>Couchbase<\/strong><\/h4>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p dir=\"ltr\">Docs<\/p>\n<\/td>\n<td>\n<p dir=\"ltr\"><a href=\"https:\/\/docs.mongodb.com\/\">https:\/\/docs.mongodb.com\/<\/a><\/p>\n<\/td>\n<td>\n<p dir=\"ltr\"><a href=\"https:\/\/docs.couchbase.com\/home\/index.html\">https:\/\/docs.couchbase.com\/home\/index.html<\/a><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p dir=\"ltr\">Foros<\/p>\n<\/td>\n<td>\n<p dir=\"ltr\"><a href=\"https:\/\/developer.mongodb.com\/community\/forums\/\">https:\/\/developer.mongodb.com\/community\/forums\/<\/a><\/p>\n<\/td>\n<td>\n<p dir=\"ltr\"><a href=\"https:\/\/www.couchbase.com\/blog\/es\/forums\/\">https:\/\/www.couchbase.com\/forums\/<\/a><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p dir=\"ltr\">\u00daltima versi\u00f3n <span style=\"font-family: inherit;font-size: inherit\">(abril de 2020)<\/span><\/p>\n<\/td>\n<td>\n<p dir=\"ltr\">4.2.6<\/p>\n<\/td>\n<td>\n<p dir=\"ltr\">6.5.1<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p dir=\"ltr\">Licencia<\/p>\n<\/td>\n<td>\n<p dir=\"ltr\"><a href=\"https:\/\/www.mongodb.com\/licensing\/server-side-public-license\/faq\">https:\/\/www.mongodb.com\/licensing\/server-side-public-license\/faq<\/a><\/p>\n<\/td>\n<td>\n<p dir=\"ltr\"><a href=\"https:\/\/www.couchbase.com\/blog\/es\/licensing-and-support-faq\/\">https:\/\/www.couchbase.com\/licensing-and-support-faq<\/a><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p dir=\"ltr\">Lenguaje de consulta<\/p>\n<\/td>\n<td>\n<p dir=\"ltr\"><a href=\"https:\/\/docs.mongodb.com\/manual\/tutorial\/query-documents\/\">Lenguaje de consulta MongoDB<\/a><\/p>\n<\/td>\n<td>\n<p dir=\"ltr\"><a href=\"https:\/\/www.couchbase.com\/blog\/es\/products\/n1ql\/\">N1QL - SQL para JSON<\/a><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<h4 role=\"presentation\"><span style=\"color: #0000ff\"><strong>ARQUITECTURA<\/strong><\/span><\/h4>\n<p dir=\"ltr\"><strong>Versi\u00f3n port\u00e1til:\u00a0<\/strong><\/p>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/04\/Screen-Shot-2020-04-22-at-7.17.08-PM.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-8487 alignleft\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/04\/Screen-Shot-2020-04-22-at-7.17.08-PM.png\" alt=\"\" width=\"208\" height=\"300\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Screen-Shot-2020-04-22-at-7.17.08-PM.png 208w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Screen-Shot-2020-04-22-at-7.17.08-PM-14x20.png 14w\" sizes=\"auto, (max-width: 208px) 100vw, 208px\" \/><\/a><\/p>\n<p><strong>MongoDB:<\/strong> \u00a0Simplemente instale y utilice el Mongodb en su ordenador port\u00e1til con los par\u00e1metros adecuados; usted est\u00e1 listo y funcionando.  Un solo proceso para manejar toda la base de datos.  Esto ha cambiado un poco en 4.2 donde necesitar\u00edas mongos para ejecutar tus transacciones. Todas las caracter\u00edsticas de MongoDB (datos, indexaci\u00f3n, consulta) est\u00e1n disponibles aqu\u00ed - excepto la b\u00fasqueda de texto completo disponible s\u00f3lo en el servicio Atlas.<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p><b><a href=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/04\/Screen-Shot-2020-04-22-at-7.21.51-PM.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-8486 alignleft\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/04\/Screen-Shot-2020-04-22-at-7.21.51-PM-215x300.png\" alt=\"\" width=\"215\" height=\"300\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Screen-Shot-2020-04-22-at-7.21.51-PM-215x300.png 215w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Screen-Shot-2020-04-22-at-7.21.51-PM.png 216w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Screen-Shot-2020-04-22-at-7.21.51-PM-14x20.png 14w\" sizes=\"auto, (max-width: 215px) 100vw, 215px\" \/><\/a>Couchbase: <\/b><span style=\"font-weight: 400\">Couchbase es diferente.  Se ha abstra\u00eddo cada uno de los servicios (datos, \u00edndice, consulta, b\u00fasqueda, an\u00e1lisis, eventos) y usted tiene la opci\u00f3n de elegir cu\u00e1l de las caracter\u00edsticas que desea ejecutar en su instancia para optimizar los recursos. Una instalaci\u00f3n t\u00edpica tiene datos, \u00edndice y consulta.  La b\u00fasqueda, los eventos y los an\u00e1lisis se ejecutar\u00e1n en su port\u00e1til: inst\u00e1lelos y util\u00edcelos seg\u00fan su caso de uso.<\/span><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p><b>Despliegue en cl\u00faster: <\/b><span style=\"font-weight: 400\">Como la mayor\u00eda de las bases de datos NoSQL, tanto MongoDB como Couchbase pueden escalarse. En MongoDB, puedes escalar mediante <\/span><a href=\"https:\/\/docs.mongodb.com\/manual\/sharding\/\"><span style=\"font-weight: 400\">fragmentaci\u00f3n<\/span><\/a><span style=\"font-weight: 400\"> la colecci\u00f3n en varios nodos. Se puede dividir por hash o por rango.  Sin una divisi\u00f3n expl\u00edcita, cada colecci\u00f3n permanece en una \u00fanica divisi\u00f3n.  Los servidores de configuraci\u00f3n almacenan los metadatos y la configuraci\u00f3n del cluster. MongoDB se distribuye uniformemente y Couchbase se distribuye multidimensionalmente.  El proceso (servicio) de Mongodb gestiona los datos, el \u00edndice y la consulta en cada fragmento (nodo), mientras que Mongos realiza el procesamiento distribuido de la consulta y la fusi\u00f3n de los resultados intermedios y no gestiona ning\u00fan dato o \u00edndice.  Mongos act\u00faa como coordinador y mongodb es la abeja obrera.\u00a0<\/span><\/p>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/04\/Screen-Shot-2020-04-23-at-7.32.09-AM.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-8482\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/04\/Screen-Shot-2020-04-23-at-7.32.09-AM-300x162.png\" alt=\"\" width=\"684\" height=\"370\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Screen-Shot-2020-04-23-at-7.32.09-AM-300x162.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Screen-Shot-2020-04-23-at-7.32.09-AM-1024x552.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Screen-Shot-2020-04-23-at-7.32.09-AM-768x414.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Screen-Shot-2020-04-23-at-7.32.09-AM-20x11.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Screen-Shot-2020-04-23-at-7.32.09-AM.png 1146w\" sizes=\"auto, (max-width: 684px) 100vw, 684px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400\">Couchbase puede desplegarse en una distribuci\u00f3n uniforme en la que cada nodo gestiona los datos y todos los servicios: datos, \u00edndices, consultas, an\u00e1lisis y eventos.  Cada servicio es una capa de la base de datos tradicional. Estos servicios est\u00e1n d\u00e9bilmente acoplados: se ejecutan en diferentes espacios de proceso y se comunican a trav\u00e9s de una red.  Por tanto, pueden desplegarse uniformemente en un \u00fanico nodo o distribuirse multidimensionalmente en un cl\u00faster. La elecci\u00f3n depende de la carga de trabajo y de los acuerdos de nivel de servicio. Los datos se almacenan en buckets. Todos los buckets est\u00e1n particionados por hash entre nodos determinados - esto es autom\u00e1tico y no requiere ninguna especificaci\u00f3n. Cuando la aplicaci\u00f3n dispone de las claves de los documentos, puede operar directamente sobre los datos sin que intervenga ning\u00fan nodo.  Esta es una de las principales diferencias arquitect\u00f3nicas que contribuyen al alto rendimiento y escalabilidad de Couchbase.   Adem\u00e1s, no hay servidores de configuraci\u00f3n. Los metadatos y su gesti\u00f3n est\u00e1n integrados en el n\u00facleo de la base de datos.   El servicio de datos gestiona los datos, el cluster y la replicaci\u00f3n dentro de un cluster Couchbase. La replicaci\u00f3n entre m\u00faltiples clusters de Couchbase es gestionada por XDCR.  Lee este art\u00edculo para entender los mecanismos de replicaci\u00f3n en MongoDB y Couchbase:\u00a0 <a href=\"https:\/\/www.couchbase.com\/blog\/es\/replication-in-nosql-document-databases-mongo-db-vs-couchbase\/\">Replicaci\u00f3n en bases de datos de documentos NoSQL (Mongo DB vs Couchbase)<\/a><\/span><\/p>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/04\/Screen-Shot-2020-04-22-at-7.32.03-PM.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-8483\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/04\/Screen-Shot-2020-04-22-at-7.32.03-PM-300x115.png\" alt=\"\" width=\"716\" height=\"274\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Screen-Shot-2020-04-22-at-7.32.03-PM-300x115.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Screen-Shot-2020-04-22-at-7.32.03-PM-768x295.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Screen-Shot-2020-04-22-at-7.32.03-PM-20x8.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Screen-Shot-2020-04-22-at-7.32.03-PM.png 1020w\" sizes=\"auto, (max-width: 716px) 100vw, 716px\" \/><\/a><\/p>\n<p><b>Dentro del despliegue del cl\u00faster.<\/b><\/p>\n<p><span style=\"font-weight: 400\">Se explican los componentes del cl\u00faster de MongoDB y su despliegue <\/span><a href=\"https:\/\/docs.mongodb.com\/manual\/core\/sharded-cluster-components\/\"><span style=\"font-weight: 400\">aqu\u00ed<\/span><\/a><span style=\"font-weight: 400\"> y lo asumo como conocimiento previo.  Evitar\u00e9 repetirlo.<\/span><a href=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/04\/Screen-Shot-2020-04-23-at-7.32.09-AM.png\"><br \/>\n<\/a><\/p>\n<p><span style=\"font-weight: 400\">El despliegue de Couchbase comienza con el servicio de datos clave-valor.  Este es el almac\u00e9n de datos (consistente) de valor-clave distribuido por hash. Tambi\u00e9n tiene replicaci\u00f3n intracluster incorporada, eliminando la necesidad de servidores de r\u00e9plica o servidores de configuraci\u00f3n separados.  El servicio de consultas orquesta la ejecuci\u00f3n de <\/span><a href=\"https:\/\/query-tutorial.couchbase.com\/tutorial\/#1\"><span style=\"font-weight: 400\">N1QL<\/span><\/a><span style=\"font-weight: 400\"> consultas. Utiliza <\/span><a href=\"https:\/\/docs.couchbase.com\/server\/6.5\/learn\/services-and-indexes\/indexes\/global-secondary-indexes.html\"><span style=\"font-weight: 400\">GSI<\/span><\/a><span style=\"font-weight: 400\"> (indexaci\u00f3n secundaria global), <\/span><a href=\"https:\/\/docs.couchbase.com\/server\/current\/fts\/full-text-intro.html\"><span style=\"font-weight: 400\">FTS<\/span><\/a><span style=\"font-weight: 400\"> (B\u00fasqueda de texto completo) seg\u00fan sea necesario.  FTS gestiona el \u00edndice de texto completo y puede consultarse <\/span><a href=\"https:\/\/docs.couchbase.com\/server\/current\/fts\/fts-supported-queries.html\"><span style=\"font-weight: 400\">directamente<\/span><\/a><span style=\"font-weight: 400\"> o a trav\u00e9s del N1QL <\/span><a href=\"https:\/\/docs.couchbase.com\/server\/current\/n1ql\/n1ql-language-reference\/searchfun.html\"><span style=\"font-weight: 400\">servicio de consulta<\/span><\/a><span style=\"font-weight: 400\">.\u00a0 <\/span><a href=\"https:\/\/docs.couchbase.com\/server\/6.5\/eventing\/eventing-overview.html\"><span style=\"font-weight: 400\">La funci\u00f3n Eventing<\/span><\/a><span style=\"font-weight: 400\"> permite desencadenar autom\u00e1ticamente una acci\u00f3n (mediante la ejecuci\u00f3n de una funci\u00f3n Javascript) en caso de mutaci\u00f3n de los datos.  La base de datos Couchbase <\/span><a href=\"https:\/\/docs.couchbase.com\/server\/current\/learn\/services-and-indexes\/services\/analytics-service.html\"><span style=\"font-weight: 400\">Motor de an\u00e1lisis<\/span><\/a><span style=\"font-weight: 400\"> es un motor de datos y consultas MPP.  Hace una copia de los datos y los redistribuye en sus nodos, ejecuta la consulta en paralelo para obtener el mejor rendimiento posible. Todo ello se puede utilizar sin problemas mediante el rico conjunto de API disponibles en nuestro <\/span><a href=\"https:\/\/www.couchbase.com\/blog\/es\/downloads\/start-today\/?family=couchbase-server&amp;utm_source=google&amp;utm_medium=search&amp;utm_campaign=Brand+-+US+-+Desktop+-+GGL+-+Phrase&amp;utm_keyword=couchbase%20sdk&amp;kpid=go_cmp-6775677964_adg-79925396592_ad-389053503283_kwd-825033165336_dev-c_ext-_prd-&amp;gclid=EAIaIQobChMI6uycotr_6AIV3QiICR3huAKAEAAYASAAEgLIo_D_BwE\"><span style=\"font-weight: 400\">SDKs<\/span><\/a><span style=\"font-weight: 400\"> disponible en todas las lenguas populares.\u00a0<\/span><\/p>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/04\/Screen-Shot-2020-04-23-at-7.50.37-AM.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-8481\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/04\/Screen-Shot-2020-04-23-at-7.50.37-AM-300x127.png\" alt=\"\" width=\"789\" height=\"334\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Screen-Shot-2020-04-23-at-7.50.37-AM-300x127.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Screen-Shot-2020-04-23-at-7.50.37-AM-1024x435.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Screen-Shot-2020-04-23-at-7.50.37-AM-768x326.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Screen-Shot-2020-04-23-at-7.50.37-AM-1536x652.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Screen-Shot-2020-04-23-at-7.50.37-AM-20x8.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Screen-Shot-2020-04-23-at-7.50.37-AM-1320x560.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Screen-Shot-2020-04-23-at-7.50.37-AM.png 1654w\" sizes=\"auto, (max-width: 789px) 100vw, 789px\" \/><\/a><\/p>\n<h4><span style=\"color: #0000ff\"><strong>OBJETOS DE BASE DE DATOS<\/strong><\/span><a href=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/04\/Screen-Shot-2020-04-23-at-7.32.09-AM.png\"><br \/>\n<\/a><\/h4>\n<p><span style=\"font-weight: 400\">MongoDB tiene una colecci\u00f3n y una base de datos como los objetos l\u00f3gicos con los que los usuarios tienen que trabajar. Couchbase tradicionalmente s\u00f3lo ten\u00eda el <\/span><a href=\"https:\/\/docs.couchbase.com\/server\/current\/learn\/buckets-memory-and-storage\/buckets.html\"><span style=\"font-weight: 400\">Cubos<\/span><\/a><span style=\"font-weight: 400\">. Bucket funcionaba tanto para la gesti\u00f3n de recursos (por ejemplo, la cantidad de memoria utilizada), la seguridad, as\u00ed como el contenedor de datos. En 6.5, introdujimos la noci\u00f3n de <\/span><a href=\"https:\/\/docs.couchbase.com\/server\/current\/developer-preview\/collections\/collections-overview.html\"><span style=\"font-weight: 400\">recogida y alcance<\/span><\/a><span style=\"font-weight: 400\"> como vista previa para desarrolladores.  Esta jerarqu\u00eda bucket:scope:collection es an\u00e1loga a database:schema:table de RDBMS.  Esto hace que la base de datos sea m\u00e1s segura y mejor multi-tenant.  En 6.5, sin la vista previa para desarrolladores, cada cubo utiliza un \u00e1mbito y una colecci\u00f3n por defecto, lo que hace que la transici\u00f3n sea fluida.<\/span><\/p>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/04\/Screen-Shot-2020-04-23-at-4.48.44-PM.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-8479\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/04\/Screen-Shot-2020-04-23-at-4.48.44-PM-300x175.png\" alt=\"\" width=\"622\" height=\"365\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Screen-Shot-2020-04-23-at-4.48.44-PM-300x175.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Screen-Shot-2020-04-23-at-4.48.44-PM-20x12.png 20w\" sizes=\"auto, (max-width: 622px) 100vw, 622px\" \/><\/a><\/p>\n<div dir=\"ltr\" align=\"left\">\n<table>\n<tbody>\n<tr>\n<td>\n<p dir=\"ltr\"><strong>RDBMS<\/strong><\/p>\n<\/td>\n<td>\n<p dir=\"ltr\"><strong>MongoDB<\/strong><\/p>\n<\/td>\n<td>\n<p dir=\"ltr\"><strong>Couchbase<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p dir=\"ltr\">Base de datos<\/p>\n<\/td>\n<td>\n<p dir=\"ltr\">Base de datos<\/p>\n<\/td>\n<td>\n<p dir=\"ltr\">Cubo<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p dir=\"ltr\">Cuadro<\/p>\n<\/td>\n<td>\n<p dir=\"ltr\">Colecci\u00f3n<\/p>\n<\/td>\n<td>\n<p dir=\"ltr\">Cubo<\/p>\n<p dir=\"ltr\">Futuro: Colecci\u00f3n<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p dir=\"ltr\">Fila<\/p>\n<\/td>\n<td>\n<p dir=\"ltr\">Documento (BSON)<\/p>\n<\/td>\n<td>\n<p dir=\"ltr\">Documento (JSON est\u00e1ndar)<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p dir=\"ltr\">Columna<\/p>\n<\/td>\n<td>\n<p dir=\"ltr\">Campo\/Atributo<\/p>\n<\/td>\n<td>\n<p dir=\"ltr\">Campo\/Atributo<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p dir=\"ltr\">Partici\u00f3n (Tabla\/colecci\u00f3n\/cubo)<\/p>\n<\/td>\n<td>\n<p dir=\"ltr\">No particionado por defecto.<\/p>\n<p dir=\"ltr\">El particionamiento de hash y rango (sharding) es soportado manualmente.<\/p>\n<\/td>\n<td>\n<p dir=\"ltr\">Partici\u00f3n (hash autom\u00e1tico)<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<h4 role=\"presentation\"><strong>Notas para los desarrolladores<\/strong><\/h4>\n<p>En MongoDB, empiezas con tu instancia (despliegue) y creas bases de datos, colecciones e \u00edndices.<\/p>\n<p>En Couchbase, empiezas con tu instancia y creas tus buckets e \u00edndices. Cada bucket puede tener m\u00faltiples tipos de documentos, por lo que cada documento debe tener un campo designado por la aplicaci\u00f3n para reconocer su tipo. {\"tipo\": \"parts\"}. Dado que cada bucket puede tener cualquier n\u00famero de tipos de documentos, debes evitar crear demasiados buckets. Esto tambi\u00e9n significa que, cuando cree un \u00edndice, le interesar\u00e1 crear un \u00edndice para cada tipo: cliente, piezas, pedidos, etc.  As\u00ed, la creaci\u00f3n del \u00edndice incluir\u00e1 una cl\u00e1usula WHERE para el tipo de documento.<\/p>\n<p>CREATE INDEX ix_customer_zip ON customer(zip) WHERE type = \"customer\";<\/p>\n<p>SELECT * FROM cliente WHERE c\u00f3digo postal = 94040 AND tipo = \"cliente\"<\/p>\n<p>Cada documento de MongoDB contiene un campo de id de documento _id proporcionado expl\u00edcitamente o generado impl\u00edcitamente.<\/p>\n<p>En Couchbase, los usuarios deben generar e insertar una clave de documento inmutable para cada documento.  Al insertar v\u00eda N1QL, puedes usar la funci\u00f3n UUID() para generar una por ti.  Pero, es una buena pr\u00e1ctica tener una <a href=\"https:\/\/www.couchbase.com\/blog\/es\/data-modelling-key-design\/\">estructura regular de la clave del documento<\/a>.<\/p>\n<h4><span style=\"color: #0000ff\"><strong>TIPOS DE DATOS<\/strong><\/span><\/h4>\n<p><span style=\"font-weight: 400\">El modelo de datos de MongoDB es <\/span><a href=\"https:\/\/www.mongodb.com\/json-and-bson\"><span style=\"font-weight: 400\">BSON<\/span><\/a><span style=\"font-weight: 400\"> y el modelo de datos de Couchbase es <\/span><a href=\"https:\/\/www.json.org\/json-en.html\"><span style=\"font-weight: 400\">JSON<\/span><\/a><span style=\"font-weight: 400\">. El tipo propietario BSON tiene algunos tipos, no en JSON.   JSON tiene tipos de cadena, num\u00e9rico, booleano (verdadero\/falso), matriz, objeto.  BSON tiene string, num\u00e9rico, booleano, array, objeto, binario, UTC DateTime, timestamp, y muchas otras extensiones propietarias personalizadas, La diferencia m\u00e1s com\u00fan es el DateTime y el timestamp.  En Couchbase, todos los datos relacionados con el tiempo se almacenan como cadena en formato ISO 8601.  Couchbase N1QL tiene una pl\u00e9tora de funciones para extraer, convertir, y calcular sobre el tiempo.  Los detalles completos de las funciones son<\/span><a href=\"https:\/\/www.couchbase.com\/blog\/es\/dates-timestamps-timezones-comparative-study-oracle-n1ql-support-date-time-feature-part-1\/\"><span style=\"font-weight: 400\"> disponible en este art\u00edculo<\/span><\/a><span style=\"font-weight: 400\">.\u00a0<\/span><\/p>\n<div dir=\"ltr\" align=\"left\">\n<table>\n<tbody>\n<tr>\n<td>\n<p dir=\"ltr\"><strong>Tipo de datos<\/strong><\/p>\n<\/td>\n<td>\n<p dir=\"ltr\"><strong>MongoDB<\/strong><\/p>\n<\/td>\n<td>\n<p dir=\"ltr\"><strong>Couchbase<\/strong><\/p>\n<\/td>\n<td>\n<p dir=\"ltr\"><strong>JSON<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p dir=\"ltr\">N\u00fameros<\/p>\n<\/td>\n<td>\n<p dir=\"ltr\">N\u00famero BSON<\/p>\n<\/td>\n<td>\n<p dir=\"ltr\">N\u00famero JSON<\/p>\n<\/td>\n<td>\n<p dir=\"ltr\">{ \"id\": 5, \"saldo\":2942.59 }<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p dir=\"ltr\">Cadena<\/p>\n<\/td>\n<td>\n<p dir=\"ltr\">BSON Cadena<\/p>\n<\/td>\n<td>\n<p dir=\"ltr\">Cadena JSON<\/p>\n<\/td>\n<td>\n<p dir=\"ltr\">{\"nombre\": \"Joe\", \"ciudad\": \"Morrisville\" }<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p dir=\"ltr\">booleano<\/p>\n<\/td>\n<td>\n<p dir=\"ltr\">Booleano BSON<\/p>\n<\/td>\n<td>\n<p dir=\"ltr\">Booleano JSON<\/p>\n<\/td>\n<td>\n<p dir=\"ltr\">{\"prima\": true, \"pendiente\": false}<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p dir=\"ltr\">datetime<\/p>\n<\/td>\n<td>\n<p dir=\"ltr\">Formato de datos personalizado<\/p>\n<\/td>\n<td>\n<p dir=\"ltr\">Cadena JSON ISO 8901 con funciones de extracci\u00f3n, conversi\u00f3n y aritm\u00e9tica<\/p>\n<\/td>\n<td>\n<p dir=\"ltr\">{ \"soldate\": \u201c2017-10-12T13:47:41.068-07:00\u201d }<\/p>\n<p dir=\"ltr\">MongoDB:<\/p>\n<p dir=\"ltr\">{ \"soldate\": ISODate(\u201c2012-12-19T06:01:17.171Z\u201d)}<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p dir=\"ltr\">datos espaciales<\/p>\n<\/td>\n<td>\n<p dir=\"ltr\">GeoJSON<\/p>\n<\/td>\n<td>\n<p dir=\"ltr\">Admite el vecino m\u00e1s pr\u00f3ximo y la distancia espacial.<\/p>\n<\/td>\n<td>\n<p dir=\"ltr\">\"geometr\u00eda\": {\"tipo\": \"Punto\", \"coordenadas\": [-104.99404, 39.75621]}<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p dir=\"ltr\">FALTA<\/p>\n<\/td>\n<td>\n<p dir=\"ltr\">Sin soporte<\/p>\n<\/td>\n<td>\n<p dir=\"ltr\">FALTA<\/p>\n<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>\n<p dir=\"ltr\">NULL<\/p>\n<\/td>\n<td>\n<p dir=\"ltr\">JSON Nulo<\/p>\n<\/td>\n<td>\n<p dir=\"ltr\">JSON null<\/p>\n<\/td>\n<td>\n<p dir=\"ltr\">{ \"\u00faltima_direcci\u00f3n\": null }<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p dir=\"ltr\">Objetos<\/p>\n<\/td>\n<td>\n<p dir=\"ltr\">Objetos JSON flexibles<\/p>\n<\/td>\n<td>\n<p dir=\"ltr\">Objetos JSON flexibles<\/p>\n<\/td>\n<td>\n<p dir=\"ltr\">{\"direcci\u00f3n\":  {\"calle\": \"1, Main street\", \"city\": Morrisville, \"zip\": \"94824\u2033}<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p dir=\"ltr\">Matrices<\/p>\n<\/td>\n<td>\n<p dir=\"ltr\">Matrices JSON flexibles<\/p>\n<\/td>\n<td>\n<p dir=\"ltr\">Matrices JSON flexibles<\/p>\n<\/td>\n<td>\n<p dir=\"ltr\">{\"hobbies\": [\"tenis\", \"esqu\u00ed\", \"lego\"]}<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p><b>TODO SOBRE DESAPARECIDOS<\/b><\/p>\n<p><span style=\"font-weight: 400\">MISSING es el valor de un campo ausente en el documento JSON o literal.<\/span><\/p>\n<p><span style=\"font-weight: 400\">{\"nombre\": \"joe\"}  En el documento falta todo menos el campo \"nombre\".  Tambi\u00e9n puede establecer el valor de un campo en DESAPARECIDO para que el campo desaparezca. Las bases de datos relacionales tradicionales utilizan <\/span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Three-valued_logic\"><span style=\"font-weight: 400\">l\u00f3gica de tres valores<\/span><\/a><span style=\"font-weight: 400\"> con verdadero, falso y NULL.  Con la adici\u00f3n de MISSING, N1QL<\/span><a href=\"https:\/\/docs.couchbase.com\/server\/4.0\/n1ql\/n1ql-language-reference\/booleanlogic.html\"><span style=\"font-weight: 400\"> utiliza la l\u00f3gica de 4 valores<\/span><\/a><span style=\"font-weight: 400\">.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">Tienes las siguientes expresiones con FALTA.\u00a0\u00a0<\/span><\/p>\n<div dir=\"ltr\" align=\"left\">\n<table>\n<tbody>\n<tr>\n<td>\n<p dir=\"ltr\">FALTA<\/p>\n<\/td>\n<td>\n<p dir=\"ltr\">Devuelve true si el documento no tiene un campo de estado<\/p>\n<p dir=\"ltr\">FROM CLIENTE WHERE estado es FALTA;<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p dir=\"ltr\">NO FALTA<\/p>\n<\/td>\n<td>\n<p dir=\"ltr\">Devuelve true si el documento tiene un campo de estado<\/p>\n<p dir=\"ltr\">FROM CLIENTE WHERE estado es NO FALTA;<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p dir=\"ltr\">DESAPARECIDO Y NULO<\/p>\n<\/td>\n<td>\n<p dir=\"ltr\">MISSING es una cantidad desconocida<\/p>\n<p dir=\"ltr\">null es un UNKNOWN conocido. Puede comprobar un valor nulo de forma similar a MISSING con la expresi\u00f3n IS NULL o IS NOT NULL.<\/p>\n<p dir=\"ltr\">JSON v\u00e1lido: {\"status\": null}<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p dir=\"ltr\">valor FALTANTE<\/p>\n<\/td>\n<td>\n<p dir=\"ltr\">Simplemente haga desaparecer el campo de cualquier tipo configur\u00e1ndolo como DESAPARECIDO<\/p>\n<p dir=\"ltr\">UPDATE CUSTOMER SET status = MISSING WHERE cxid = \"xyz232\"<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<h4><span style=\"color: #0000ff\"><b>MODELIZACI\u00d3N DE DATOS<\/b><\/span><\/h4>\n<table>\n<tbody>\n<tr>\n<td><b>Relaci\u00f3n<\/b><\/td>\n<td><b>MongoDB<\/b><\/td>\n<td><b>Couchbase\u00a0<\/b><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">1:1<\/span><\/td>\n<td>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Objeto incrustado (impl\u00edcito)<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Referencia clave del documento<\/span><\/li>\n<\/ul>\n<\/td>\n<td>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Objeto incrustado (impl\u00edcito)<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Referencia clave del documento<\/span><\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">1:N<\/span><\/td>\n<td>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Matriz de objetos incrustados<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Clave del documento Referencia<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Consulta con el operador $lookup<\/span><\/li>\n<\/ul>\n<\/td>\n<td>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Matriz de objetos incrustados<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Clave del documento Referencia<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Consulta con uniones INNER, LEFT OUTER, RIGHT OUTER, NEST, UNNEST<\/span><\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">N:M<\/span><\/td>\n<td>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Matriz de objetos incrustados<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Matrices de objetos con referencias<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Dificultad de consulta con el operador $lookup<\/span><\/li>\n<\/ul>\n<\/td>\n<td>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Matriz de objetos incrustados<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Matrices de objetos con referencias<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Consulta con uniones INNER, LEFT OUTER, RIGHT OUTER, NEST, UNNEST<\/span><\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><b>GESTI\u00d3N DEL ESPACIO F\u00cdSICO<\/b><\/p>\n<table>\n<tbody>\n<tr>\n<td><b>Tipo de \u00edndice<\/b><\/td>\n<td><b>MongoDB<\/b><\/td>\n<td><b>Couchbase\u00a0<\/b><\/td>\n<\/tr>\n<tr>\n<td><b>Almacenamiento en mesa<\/b><\/td>\n<td><span style=\"font-weight: 400\">Directorio del sistema de archivos<\/span><\/td>\n<td><span style=\"font-weight: 400\">Directorio del sistema de archivos<\/span><\/td>\n<\/tr>\n<tr>\n<td><b>Almacenamiento de \u00edndices<\/b><\/td>\n<td><span style=\"font-weight: 400\">Directorio del sistema de archivos<\/span><\/td>\n<td><span style=\"font-weight: 400\">Directorio del sistema de archivos<\/span><\/td>\n<\/tr>\n<tr>\n<td><b>Particionamiento - Datos<\/b><\/td>\n<td><span style=\"font-weight: 400\">Se admite la fragmentaci\u00f3n por rangos y por hash.<\/span><\/td>\n<td><span style=\"font-weight: 400\">Partici\u00f3n hash<\/span><\/p>\n<p><span style=\"font-weight: 400\">Almacenado en 1024 vbuckets<\/span><\/td>\n<\/tr>\n<tr>\n<td><b>Particionamiento - \u00cdndice<\/b><\/td>\n<td><span style=\"font-weight: 400\">Vinculado a la estrategia de fragmentaci\u00f3n de colecciones, ya que todos los (sub) \u00edndices son locales a cada nodo mongod.<\/span><\/td>\n<td><span style=\"font-weight: 400\">Siempre separado del cubo<\/span><\/p>\n<p><span style=\"font-weight: 400\">\u00cdndice global (puede utilizar una estrategia diferente a la del cubo\/colecci\u00f3n)<\/span><\/p>\n<p><span style=\"font-weight: 400\">Admite la partici\u00f3n hash de los \u00edndices.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Partici\u00f3n de rangos, la indexaci\u00f3n parcial es manual mediante \u00edndices parciales.<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h4><span style=\"color: #0000ff\"><strong>SDKs<\/strong><\/span><\/h4>\n<p>Mi conocimiento personal de ambos SDK es limitado.  Deber\u00eda haber APIs, drivers y conectores equivalentes con los dos productos.  Si no es as\u00ed, por favor h\u00e1ganoslo saber.<\/p>\n<table>\n<tbody>\n<tr>\n<td><b>SDK<\/b><\/td>\n<td><b>MongoDB<\/b><\/td>\n<td><b>Couchbase\u00a0<\/b><\/td>\n<\/tr>\n<tr>\n<td><b>Java<\/b><\/td>\n<td><b>Controlador java de MongoDB<\/b><\/td>\n<td><b>SDK Java de Couchbase,\u00a0<\/b><\/p>\n<p><b>Simba y CDATA JDBC<\/b><\/td>\n<\/tr>\n<tr>\n<td><b>C<\/b><\/td>\n<td><b>Controlador C de MongoDB<\/b><\/p>\n<p><b>Controlador ODBC<\/b><\/td>\n<td><b>Couchbase C SDK,<\/b><\/p>\n<p><b>Simba y CDATA ODBC<\/b><\/td>\n<\/tr>\n<tr>\n<td><b>.NET, LINQ<\/b><\/td>\n<td><b>Proveedor Mongodb .NET.<\/b><\/td>\n<td><b>Proveedor .NET de Couchbase<\/b><\/p>\n<p><b>Proveedor LINQ<\/b><\/td>\n<\/tr>\n<tr>\n<td><b>PHP, Python, Perl, Node.js<\/b><\/td>\n<td><b>SDK de MongoDB en todos estos idiomas<\/b><\/td>\n<td><b>SDK de Couchbase en todos estos idiomas<\/b><\/td>\n<\/tr>\n<tr>\n<td><b>golang<\/b><\/td>\n<td><b>Mongodb go sdk<\/b><\/td>\n<td><b>SDK de Couchbase Go<\/b><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h4><strong><span style=\"color: #0000ff\">LENGUAJE DE CONSULTA<\/span><\/strong><\/h4>\n<p><strong>SELECCIONAR:\u00a0 \u00a0<\/strong>Mongo tiene m\u00faltiples APIs para seleccionar los documentos. find(), aggregate() pueden hacer el trabajo de simples sentencias SELECT. Veremos aggregate() m\u00e1s adelante en esta secci\u00f3n.<\/p>\n<pre class=\"theme:vs2012-black font-size:17 line-height:20 whitespace-before:1 whitespace-after:1 lang:mysql decode:true\">\/* MongoDB *\/\r\ndb.CUSTOMER.find({zip:94040})\r\n\r\n\/* Couchbase: N1QL *\/\r\nSELECT * FROM CUSTOMER WHERE zip = 94040;<\/pre>\n<p><strong>INSERTAR<\/strong><\/p>\n<p>En MongoDB, proporcionar _id es opcional.  Si no proporcionas su valor, Mongo generar\u00e1 el valor del campo y lo guardar\u00e1.  Proporcionar document KEY es obligatorio en Couchbase.<\/p>\n<pre class=\"theme:vs2012-black font-size:17 line-height:20 whitespace-before:2 lang:mysql decode:true\">\/* MongoDB *\/\r\ndb.CUSTOMER.save({_id: \"xyz124\", \r\n{\u201cid\u201d: \u201cxyz124\u201d, \u201cname\u201d: \u201cJoe Montana\u201d, \u201cstatus\u201d: \u201cPremium\u201d, \u201czip\u201d: 94040})\r\n\r\n\/* Couchbase:N1QL *\/\r\nINSERT INTO CUSTOMER(KEY, VALUE) VALUES\r\n(\u2018xyz124\u2019, {\u201cid\u201d: \u201cxyz124\u201d, \u201cname\u201d: \u201cJoe Montana\u201d, \u201cstatus\u201d: \u201cPremium\u201d, \u201czip\u201d: 94040})\r\n<\/pre>\n<p><strong>ACTUALIZACI\u00d3N<\/strong><\/p>\n<pre class=\"theme:vs2012-black font-size:17 line-height:20 whitespace-before:2 lang:mysql decode:true\">\/* MongoDB *\/\r\ndb.CUSTOMER.update({_id:\u201dxyz124\u2019},{zip:94587})\r\n\r\n\/* Coudhbase:N1QL *\/\r\nUPDATE CUSTOMER SET zip = 94587 WHERE id = \u2018xyz124\u2019\r\n<\/pre>\n<p><strong>BORRAR<\/strong><\/p>\n<pre class=\"theme:vs2012-black font-size:17 line-height:20 whitespace-before:2 lang:mysql decode:true\">\/* MongoDB *\/\r\ndb.CUSTOMER.remove({_id:\u2018pqr482\u2019})\r\n\r\n\/* Couchbase:N1QL.  One of the statements will do for this data\/schema. *\/\r\nDELETE FROM CUSTOMER WHERE id = \u2018pqr482\u2019;\r\nDELETE FROM CUSTOMER WHERE META().id = \u2018pqr482\u2019;\r\n<\/pre>\n<p><strong><a href=\"https:\/\/docs.couchbase.com\/server\/current\/n1ql\/n1ql-language-reference\/merge.html\">FUSIONAR<\/a>:\u00a0<\/strong>La operaci\u00f3n MERGE en un conjunto de documentos JSON es a menudo necesaria como parte de su proceso ETL o actualizaciones diarias.  La sentencia MERGE puede involucrar fuentes de datos complejas con predicados complejos basados en reglas de negocio.  Couchbase proporciona la operaci\u00f3n MERGE est\u00e1ndar con la misma sem\u00e1ntica.  En MongoDB, ten\u00edas que escribir un largo programa para hacer esto, pero entonces algunas de las reglas de la operaci\u00f3n MERGE (por ejemplo, cada documento SOLO debe ser actualizado una vez) son dif\u00edciles de hacer cumplir desde una aplicaci\u00f3n.  En Couchbase, puedes simplemente usar la funci\u00f3n <a href=\"https:\/\/www.couchbase.com\/blog\/es\/ansi-join-enhancements-and-ansi-merge\/\">Declaraci\u00f3n MERGE<\/a>como los RDBMS.<\/p>\n<pre class=\"theme:vs2012-black font-size:17 line-height:20 whitespace-before:2 lang:default decode:true\">\/* MongoDB *\/\r\nUnavailable.  Need to work around using aggregate(), custom-logic program, and update().\r\n\r\n\/* Couchbase:N1QL Second statement is ANSI SQL Compliant*\/\r\nMERGE INTO CUSTOMER \r\n      USING (SELECT id FROM CN WHERE x &lt; 10) AS CN \r\n            ON KEY CN.id  WHEN MATCHED THEN \r\n                  UPDATE SET CUSTOMER.o4=1;\r\n\r\nMERGE INTO CUSTOMER \r\n      USING (SELECT id FROM CN WHERE x &lt; 10) AS CN \r\n            ON (CN.id = META(CUSTOKMER).id) WHEN MATCHED THEN \r\n                  UPDATE SET CUSTOMER.o4=1;<\/pre>\n<p><strong>DESCRIBE:<\/strong><\/p>\n<p>Los datos JSON son autodescriptivos y flexibles. MongoDB Schema helper est\u00e1 disponible a trav\u00e9s de <a href=\"https:\/\/docs.mongodb.com\/compass\/current\/schema\/\">Visualizaci\u00f3n de la br\u00fajula<\/a> s\u00f3lo en la edici\u00f3n Enterprise.<\/p>\n<p>Couchbase tiene INFER para analizar y entender el esquema. Tanto el servicio de consulta como el servicio anal\u00edtico pueden inferir el esquema.<\/p>\n<ol>\n<li style=\"list-style-type: none\">\n<ol>\n<li>Servicio de consulta <a href=\"https:\/\/docs.couchbase.com\/server\/6.5\/n1ql\/n1ql-language-reference\/infer.html\">Comando INFER<\/a><\/li>\n<li>El Servicio de An\u00e1lisis ha <a href=\"https:\/\/docs.couchbase.com\/server\/current\/analytics\/8_builtin.html\">array_infer_schema()<\/a> funci\u00f3n.<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/04\/Screen-Shot-2020-04-24-at-4.25.44-PM.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-8500\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/04\/Screen-Shot-2020-04-24-at-4.25.44-PM-300x209.png\" alt=\"\" width=\"653\" height=\"456\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Screen-Shot-2020-04-24-at-4.25.44-PM-300x209.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Screen-Shot-2020-04-24-at-4.25.44-PM-1024x713.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Screen-Shot-2020-04-24-at-4.25.44-PM-768x535.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Screen-Shot-2020-04-24-at-4.25.44-PM-1536x1070.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Screen-Shot-2020-04-24-at-4.25.44-PM-20x14.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Screen-Shot-2020-04-24-at-4.25.44-PM-1320x919.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/Screen-Shot-2020-04-24-at-4.25.44-PM.png 1956w\" sizes=\"auto, (max-width: 653px) 100vw, 653px\" \/><\/a><\/p>\n<p>Este es el ejemplo de la salida INFER.<\/p>\n<pre class=\"theme:vs2012-black font-size:17 line-height:20 height-set:true whitespace-before:2 lang:js decode:true\">INFER `travel-sample`;\r\n\r\n{\r\n    \"requestID\": \"59c444b1-a468-486b-aac3-949be1ddaed1\",\r\n    \"clientContextID\": \"634e367b-ac7c-4815-90da-1506d6902d78\",\r\n    \"signature\": null,\r\n    \"results\": [\r\n    [\r\n        {\r\n            \"#docs\": 816,\r\n            \"$schema\": \"https:\/\/json-schema.org\/draft-06\/schema\",\r\n            \"Flavor\": \"`stops` = 0, `type` = \\\"route\\\"\",\r\n            \"properties\": {\r\n                \"airline\": {\r\n                    \"#docs\": 816,\r\n                    \"%docs\": 100,\r\n                    \"samples\": [\r\n                        \"9K\",\r\n                        \"DL\",\r\n                        \"KL\",\r\n                        \"US\",\r\n                        \"WN\"\r\n                    ],\r\n                    \"type\": \"string\"\r\n                },\r\n                \"airlineid\": {\r\n                    \"#docs\": 816,\r\n                    \"%docs\": 100,\r\n                    \"samples\": [\r\n                        \"airline_1629\",\r\n                        \"airline_2009\",\r\n                        \"airline_3090\",\r\n                        \"airline_4547\",\r\n                        \"airline_5265\"\r\n                    ],\r\n                    \"type\": \"string\"\r\n                },\r\n                \"destinationairport\": {\r\n                    \"#docs\": 816,\r\n                    \"%docs\": 100,\r\n                    \"samples\": [\r\n                        \"ACK\",\r\n                        \"ATL\",\r\n                        \"BWI\",\r\n                        \"CMH\",\r\n                        \"MAN\"\r\n                    ],\r\n                    \"type\": \"string\"\r\n                },\r\n                \"distance\": {\r\n                    \"#docs\": 816,\r\n                    \"%docs\": 100,\r\n                    \"samples\": [\r\n                        49.792009674515775,\r\n                        335.34343397923425,\r\n                        775.5437991859698,\r\n                        2524.506189235734,\r\n                        6139.9648921034795\r\n                    ],\r\n                    \"type\": \"number\"\r\n                },\r\n                \"equipment\": {\r\n                    \"#docs\": [\r\n                        1,\r\n                        815\r\n                    ],\r\n                    \"%docs\": [\r\n                        0.12,\r\n                        99.87\r\n                    ],\r\n                    \"samples\": [\r\n                        [\r\n                            null\r\n                        ],\r\n                        [\r\n                            \"73W 738\",\r\n                            \"763\",\r\n                            \"CNA\",\r\n                            \"CRJ\",\r\n                            \"ERJ CRJ\"\r\n                        ]\r\n                    ],\r\n                    \"type\": [\r\n                        \"null\",\r\n                        \"string\"\r\n                    ]\r\n                },\r\n                \"id\": {\r\n                    \"#docs\": 816,\r\n                    \"%docs\": 100,\r\n                    \"samples\": [\r\n                        3645,\r\n                        20935,\r\n                        36958,\r\n                        59930,\r\n                        64450\r\n                    ],\r\n                    \"type\": \"number\"\r\n                },\r\n                \"schedule\": {\r\n                    \"#docs\": 816,\r\n                    \"%docs\": 100,\r\n                    \"items\": {\r\n                        \"#docs\": 17124,\r\n                        \"$schema\": \"https:\/\/json-schema.org\/draft-06\/schema\",\r\n                        \"properties\": {\r\n                            \"day\": {\r\n                                \"type\": \"number\"\r\n                            },\r\n                            \"flight\": {\r\n                                \"type\": \"string\"\r\n                            },\r\n                            \"utc\": {\r\n                                \"type\": \"string\"\r\n                            }\r\n                        },\r\n                        \"type\": \"object\"\r\n                    },\r\n                    \"maxItems\": 31,\r\n                    \"minItems\": 10,\r\n                    \"samples\": [\r\n                        [\r\n                            {\r\n                                \"day\": 0,\r\n                                \"flight\": \"9K006\",\r\n                                \"utc\": \"19:36:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 0,\r\n                                \"flight\": \"9K802\",\r\n                                \"utc\": \"22:34:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 0,\r\n                                \"flight\": \"9K210\",\r\n                                \"utc\": \"20:08:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 0,\r\n                                \"flight\": \"9K316\",\r\n                                \"utc\": \"01:02:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 1,\r\n                                \"flight\": \"9K408\",\r\n                                \"utc\": \"05:50:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 1,\r\n                                \"flight\": \"9K452\",\r\n                                \"utc\": \"12:34:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 1,\r\n                                \"flight\": \"9K799\",\r\n                                \"utc\": \"04:36:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 2,\r\n                                \"flight\": \"9K157\",\r\n                                \"utc\": \"19:35:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 2,\r\n                                \"flight\": \"9K923\",\r\n                                \"utc\": \"01:09:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 3,\r\n                                \"flight\": \"9K201\",\r\n                                \"utc\": \"09:24:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 4,\r\n                                \"flight\": \"9K355\",\r\n                                \"utc\": \"04:29:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 4,\r\n                                \"flight\": \"9K845\",\r\n                                \"utc\": \"12:24:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 4,\r\n                                \"flight\": \"9K515\",\r\n                                \"utc\": \"17:56:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 4,\r\n                                \"flight\": \"9K472\",\r\n                                \"utc\": \"11:16:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 4,\r\n                                \"flight\": \"9K506\",\r\n                                \"utc\": \"04:17:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 5,\r\n                                \"flight\": \"9K040\",\r\n                                \"utc\": \"20:32:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 5,\r\n                                \"flight\": \"9K273\",\r\n                                \"utc\": \"04:29:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 5,\r\n                                \"flight\": \"9K131\",\r\n                                \"utc\": \"22:14:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 5,\r\n                                \"flight\": \"9K494\",\r\n                                \"utc\": \"18:54:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 6,\r\n                                \"flight\": \"9K037\",\r\n                                \"utc\": \"21:13:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 6,\r\n                                \"flight\": \"9K786\",\r\n                                \"utc\": \"16:07:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 6,\r\n                                \"flight\": \"9K724\",\r\n                                \"utc\": \"15:53:00\"\r\n                            }\r\n                        ],\r\n                        [\r\n                            {\r\n                                \"day\": 0,\r\n                                \"flight\": \"DL113\",\r\n                                \"utc\": \"15:48:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 0,\r\n                                \"flight\": \"DL864\",\r\n                                \"utc\": \"09:13:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 1,\r\n                                \"flight\": \"DL880\",\r\n                                \"utc\": \"23:27:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 2,\r\n                                \"flight\": \"DL399\",\r\n                                \"utc\": \"06:42:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 2,\r\n                                \"flight\": \"DL705\",\r\n                                \"utc\": \"15:54:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 2,\r\n                                \"flight\": \"DL630\",\r\n                                \"utc\": \"21:52:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 3,\r\n                                \"flight\": \"DL570\",\r\n                                \"utc\": \"00:02:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 4,\r\n                                \"flight\": \"DL702\",\r\n                                \"utc\": \"18:46:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 4,\r\n                                \"flight\": \"DL668\",\r\n                                \"utc\": \"20:09:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 4,\r\n                                \"flight\": \"DL214\",\r\n                                \"utc\": \"10:27:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 4,\r\n                                \"flight\": \"DL748\",\r\n                                \"utc\": \"13:36:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 5,\r\n                                \"flight\": \"DL935\",\r\n                                \"utc\": \"20:48:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 6,\r\n                                \"flight\": \"DL074\",\r\n                                \"utc\": \"19:27:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 6,\r\n                                \"flight\": \"DL618\",\r\n                                \"utc\": \"10:54:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 6,\r\n                                \"flight\": \"DL983\",\r\n                                \"utc\": \"19:41:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 6,\r\n                                \"flight\": \"DL951\",\r\n                                \"utc\": \"17:45:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 6,\r\n                                \"flight\": \"DL546\",\r\n                                \"utc\": \"12:19:00\"\r\n                            }\r\n                        ],\r\n                        [\r\n                            {\r\n                                \"day\": 0,\r\n                                \"flight\": \"KL362\",\r\n                                \"utc\": \"22:09:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 0,\r\n                                \"flight\": \"KL430\",\r\n                                \"utc\": \"10:39:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 0,\r\n                                \"flight\": \"KL249\",\r\n                                \"utc\": \"18:12:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 1,\r\n                                \"flight\": \"KL670\",\r\n                                \"utc\": \"16:10:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 1,\r\n                                \"flight\": \"KL164\",\r\n                                \"utc\": \"00:58:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 2,\r\n                                \"flight\": \"KL015\",\r\n                                \"utc\": \"16:29:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 3,\r\n                                \"flight\": \"KL731\",\r\n                                \"utc\": \"17:12:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 4,\r\n                                \"flight\": \"KL047\",\r\n                                \"utc\": \"14:58:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 4,\r\n                                \"flight\": \"KL854\",\r\n                                \"utc\": \"08:41:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 4,\r\n                                \"flight\": \"KL173\",\r\n                                \"utc\": \"21:20:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 5,\r\n                                \"flight\": \"KL006\",\r\n                                \"utc\": \"19:12:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 5,\r\n                                \"flight\": \"KL886\",\r\n                                \"utc\": \"21:32:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 6,\r\n                                \"flight\": \"KL448\",\r\n                                \"utc\": \"22:24:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 6,\r\n                                \"flight\": \"KL286\",\r\n                                \"utc\": \"14:05:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 6,\r\n                                \"flight\": \"KL170\",\r\n                                \"utc\": \"03:36:00\"\r\n                            }\r\n                        ],\r\n                        [\r\n                            {\r\n                                \"day\": 0,\r\n                                \"flight\": \"US931\",\r\n                                \"utc\": \"19:24:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 0,\r\n                                \"flight\": \"US257\",\r\n                                \"utc\": \"20:54:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 1,\r\n                                \"flight\": \"US375\",\r\n                                \"utc\": \"08:22:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 1,\r\n                                \"flight\": \"US674\",\r\n                                \"utc\": \"20:41:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 1,\r\n                                \"flight\": \"US866\",\r\n                                \"utc\": \"03:58:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 1,\r\n                                \"flight\": \"US142\",\r\n                                \"utc\": \"16:05:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 2,\r\n                                \"flight\": \"US572\",\r\n                                \"utc\": \"19:33:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 2,\r\n                                \"flight\": \"US270\",\r\n                                \"utc\": \"12:58:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 2,\r\n                                \"flight\": \"US151\",\r\n                                \"utc\": \"07:46:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 3,\r\n                                \"flight\": \"US513\",\r\n                                \"utc\": \"13:58:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 3,\r\n                                \"flight\": \"US410\",\r\n                                \"utc\": \"00:44:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 3,\r\n                                \"flight\": \"US262\",\r\n                                \"utc\": \"14:52:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 3,\r\n                                \"flight\": \"US962\",\r\n                                \"utc\": \"05:32:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 3,\r\n                                \"flight\": \"US527\",\r\n                                \"utc\": \"17:42:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 4,\r\n                                \"flight\": \"US068\",\r\n                                \"utc\": \"04:14:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 4,\r\n                                \"flight\": \"US448\",\r\n                                \"utc\": \"09:39:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 4,\r\n                                \"flight\": \"US914\",\r\n                                \"utc\": \"07:16:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 4,\r\n                                \"flight\": \"US090\",\r\n                                \"utc\": \"06:06:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 4,\r\n                                \"flight\": \"US514\",\r\n                                \"utc\": \"14:38:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 5,\r\n                                \"flight\": \"US817\",\r\n                                \"utc\": \"09:41:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 5,\r\n                                \"flight\": \"US665\",\r\n                                \"utc\": \"03:49:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 6,\r\n                                \"flight\": \"US740\",\r\n                                \"utc\": \"07:27:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 6,\r\n                                \"flight\": \"US803\",\r\n                                \"utc\": \"18:37:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 6,\r\n                                \"flight\": \"US300\",\r\n                                \"utc\": \"09:08:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 6,\r\n                                \"flight\": \"US496\",\r\n                                \"utc\": \"07:05:00\"\r\n                            }\r\n                        ],\r\n                        [\r\n                            {\r\n                                \"day\": 0,\r\n                                \"flight\": \"WN044\",\r\n                                \"utc\": \"13:39:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 0,\r\n                                \"flight\": \"WN799\",\r\n                                \"utc\": \"07:15:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 0,\r\n                                \"flight\": \"WN792\",\r\n                                \"utc\": \"09:16:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 1,\r\n                                \"flight\": \"WN030\",\r\n                                \"utc\": \"09:51:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 1,\r\n                                \"flight\": \"WN377\",\r\n                                \"utc\": \"03:41:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 2,\r\n                                \"flight\": \"WN081\",\r\n                                \"utc\": \"01:53:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 2,\r\n                                \"flight\": \"WN413\",\r\n                                \"utc\": \"04:49:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 2,\r\n                                \"flight\": \"WN132\",\r\n                                \"utc\": \"16:06:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 2,\r\n                                \"flight\": \"WN882\",\r\n                                \"utc\": \"21:16:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 2,\r\n                                \"flight\": \"WN773\",\r\n                                \"utc\": \"04:55:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 3,\r\n                                \"flight\": \"WN286\",\r\n                                \"utc\": \"04:17:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 3,\r\n                                \"flight\": \"WN295\",\r\n                                \"utc\": \"04:35:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 4,\r\n                                \"flight\": \"WN932\",\r\n                                \"utc\": \"16:34:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 4,\r\n                                \"flight\": \"WN315\",\r\n                                \"utc\": \"00:35:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 4,\r\n                                \"flight\": \"WN016\",\r\n                                \"utc\": \"09:10:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 4,\r\n                                \"flight\": \"WN509\",\r\n                                \"utc\": \"22:28:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 5,\r\n                                \"flight\": \"WN090\",\r\n                                \"utc\": \"13:46:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 6,\r\n                                \"flight\": \"WN456\",\r\n                                \"utc\": \"04:05:00\"\r\n                            },\r\n                            {\r\n                                \"day\": 6,\r\n                                \"flight\": \"WN111\",\r\n                                \"utc\": \"05:10:00\"\r\n                            }\r\n                        ]\r\n                    ],\r\n                    \"type\": \"array\"\r\n                },\r\n                \"sourceairport\": {\r\n                    \"#docs\": 816,\r\n                    \"%docs\": 100,\r\n                    \"samples\": [\r\n                        \"HYA\",\r\n                        \"JFK\",\r\n                        \"ORD\",\r\n                        \"SJU\",\r\n                        \"VLD\"\r\n                    ],\r\n                    \"type\": \"string\"\r\n                },\r\n                \"stops\": {\r\n                    \"#docs\": 816,\r\n                    \"%docs\": 100,\r\n                    \"samples\": [\r\n                        0\r\n                    ],\r\n                    \"type\": \"number\"\r\n                },\r\n                \"type\": {\r\n                    \"#docs\": 816,\r\n                    \"%docs\": 100,\r\n                    \"samples\": [\r\n                        \"route\"\r\n                    ],\r\n                    \"type\": \"string\"\r\n                }\r\n            },\r\n            \"type\": \"object\"\r\n        },\r\n        {\r\n            \"#docs\": 109,\r\n            \"$schema\": \"https:\/\/json-schema.org\/draft-06\/schema\",\r\n            \"Flavor\": \"`type` = \\\"landmark\\\"\",\r\n            \"properties\": {\r\n                \"activity\": {\r\n                    \"#docs\": 109,\r\n                    \"%docs\": 100,\r\n                    \"samples\": [\r\n                        \"buy\",\r\n                        \"do\",\r\n                        \"drink\",\r\n                        \"eat\",\r\n                        \"see\"\r\n                    ],\r\n                    \"type\": \"string\"\r\n                },\r\n                \"address\": {\r\n                    \"#docs\": [\r\n                        106,\r\n                        3\r\n                    ],\r\n                    \"%docs\": [\r\n                        97.24,\r\n                        2.75\r\n                    ],\r\n                    \"samples\": [\r\n                        [\r\n                            null\r\n                        ],\r\n                        [\r\n                            \"310 Uxbridge Rd, W12 7LJ\",\r\n                            \"Craven Cottage, Stevenage Rd, ...\",\r\n                            \"Warwick Road, SW5 9TA\"\r\n                        ]\r\n                    ],\r\n                    \"type\": [\r\n                        \"null\",\r\n                        \"string\"\r\n                    ]\r\n                },\r\n                \"alt\": {\r\n                    \"#docs\": [\r\n                        108,\r\n                        1\r\n                    ],\r\n                    \"%docs\": [\r\n                        99.08,\r\n                        0.91\r\n                    ],\r\n                    \"samples\": [\r\n                        [\r\n                            null\r\n                        ],\r\n                        [\r\n                            \"previously Shanghai Red's\"\r\n                        ]\r\n                    ],\r\n                    \"type\": [\r\n                        \"null\",\r\n                        \"string\"\r\n                    ]\r\n                },\r\n                \"city\": {\r\n                    \"#docs\": 109,\r\n                    \"%docs\": 100,\r\n                    \"samples\": [\r\n                        \"Carpentras\",\r\n                        \"Llanddona\",\r\n                        \"Llangrannog\",\r\n                        \"London\",\r\n                        \"Los Angeles\"\r\n                    ],\r\n                    \"type\": \"string\"\r\n                },\r\n                \"content\": {\r\n                    \"#docs\": 109,\r\n                    \"%docs\": 100,\r\n                    \"samples\": [\r\n                        \"Hosts frequent conventions, ex...\",\r\n                        \"Originally a dance hall, this ...\",\r\n                        \"The Hollywood Wax Museum is th...\",\r\n                        \"The home of Premier League foo...\",\r\n                        \"several annual horse racing, b...\"\r\n                    ],\r\n                    \"type\": \"string\"\r\n                },\r\n                \"country\": {\r\n                    \"#docs\": 109,\r\n                    \"%docs\": 100,\r\n                    \"samples\": [\r\n                        \"France\",\r\n                        \"United Kingdom\",\r\n                        \"United States\"\r\n                    ],\r\n                    \"type\": \"string\"\r\n                },\r\n                \"directions\": {\r\n                    \"#docs\": [\r\n                        106,\r\n                        3\r\n                    ],\r\n                    \"%docs\": [\r\n                        97.24,\r\n                        2.75\r\n                    ],\r\n                    \"samples\": [\r\n                        [\r\n                            null\r\n                        ],\r\n                        [\r\n                            \"about 10 min walk from both Pu...\",\r\n                            \"tube: Earl's Court or West Bro...\",\r\n                            \"tube: Shepherd's Bush Market\"\r\n                        ]\r\n                    ],\r\n                    \"type\": [\r\n                        \"null\",\r\n                        \"string\"\r\n                    ]\r\n                },\r\n                \"email\": {\r\n                    \"#docs\": [\r\n                        106,\r\n                        3\r\n                    ],\r\n                    \"%docs\": [\r\n                        97.24,\r\n                        2.75\r\n                    ],\r\n                    \"samples\": [\r\n                        [\r\n                            null\r\n                        ],\r\n                        [\r\n                            \"enquiries@fulhamfc.com\",\r\n                            \"info@eco.co.uk\",\r\n                            \"notes@bushhallmusic.co.uk\"\r\n                        ]\r\n                    ],\r\n                    \"type\": [\r\n                        \"null\",\r\n                        \"string\"\r\n                    ]\r\n                },\r\n                \"geo\": {\r\n                    \"#docs\": 109,\r\n                    \"%docs\": 100,\r\n                    \"properties\": {\r\n                        \"accuracy\": {\r\n                            \"#docs\": 109,\r\n                            \"%docs\": 100,\r\n                            \"samples\": [\r\n                                \"APPROXIMATE\",\r\n                                \"RANGE_INTERPOLATED\",\r\n                                \"ROOFTOP\"\r\n                            ],\r\n                            \"type\": \"string\"\r\n                        },\r\n                        \"lat\": {\r\n                            \"#docs\": 109,\r\n                            \"%docs\": 100,\r\n                            \"samples\": [\r\n                                34.101757,\r\n                                44.037882130818225,\r\n                                51.4749,\r\n                                51.4888,\r\n                                51.5064\r\n                            ],\r\n                            \"type\": \"number\"\r\n                        },\r\n                        \"lon\": {\r\n                            \"#docs\": 109,\r\n                            \"%docs\": 100,\r\n                            \"samples\": [\r\n                                -118.338056,\r\n                                -0.2317,\r\n                                -0.2216,\r\n                                -0.1977,\r\n                                5.064881989019341\r\n                            ],\r\n                            \"type\": \"number\"\r\n                        }\r\n                    },\r\n                    \"samples\": [\r\n                        {\r\n                            \"accuracy\": \"APPROXIMATE\",\r\n                            \"lat\": 51.4749,\r\n                            \"lon\": -0.2216\r\n                        },\r\n                        {\r\n                            \"accuracy\": \"RANGE_INTERPOLATED\",\r\n                            \"lat\": 34.101757,\r\n                            \"lon\": -118.338056\r\n                        },\r\n                        {\r\n                            \"accuracy\": \"RANGE_INTERPOLATED\",\r\n                            \"lat\": 44.037882130818225,\r\n                            \"lon\": 5.064881989019341\r\n                        },\r\n                        {\r\n                            \"accuracy\": \"RANGE_INTERPOLATED\",\r\n                            \"lat\": 51.5064,\r\n                            \"lon\": -0.2317\r\n                        },\r\n                        {\r\n                            \"accuracy\": \"ROOFTOP\",\r\n                            \"lat\": 51.4888,\r\n                            \"lon\": -0.1977\r\n                        }\r\n                    ],\r\n                    \"type\": \"object\"\r\n                },\r\n                \"hours\": {\r\n                    \"#docs\": [\r\n                        108,\r\n                        1\r\n                    ],\r\n                    \"%docs\": [\r\n                        99.08,\r\n                        0.91\r\n                    ],\r\n                    \"samples\": [\r\n                        [\r\n                            null\r\n                        ],\r\n                        [\r\n                            \"10AM-midnight daily\"\r\n                        ]\r\n                    ],\r\n                    \"type\": [\r\n                        \"null\",\r\n                        \"string\"\r\n                    ]\r\n                },\r\n                \"id\": {\r\n                    \"#docs\": 109,\r\n                    \"%docs\": 100,\r\n                    \"samples\": [\r\n                        11755,\r\n                        16141,\r\n                        16149,\r\n                        16387,\r\n                        40348\r\n                    ],\r\n                    \"type\": \"number\"\r\n                },\r\n                \"image\": {\r\n                    \"#docs\": [\r\n                        1,\r\n                        108\r\n                    ],\r\n                    \"%docs\": [\r\n                        0.91,\r\n                        99.08\r\n                    ],\r\n                    \"samples\": [\r\n                        [\r\n                            null\r\n                        ],\r\n                        [\r\n                            \"https:\/\/en.wikivoyage.org\/wiki...\",\r\n                            \"https:\/\/en.wikivoyage.org\/wiki...\",\r\n                            \"https:\/\/en.wikivoyage.org\/wiki...\",\r\n                            \"https:\/\/en.wikivoyage.org\/wiki...\",\r\n                            \"https:\/\/en.wikivoyage.org\/wiki...\"\r\n                        ]\r\n                    ],\r\n                    \"type\": [\r\n                        \"null\",\r\n                        \"string\"\r\n                    ]\r\n                },\r\n                \"image_direct_url\": {\r\n                    \"#docs\": 7,\r\n                    \"%docs\": 6.42,\r\n                    \"samples\": [\r\n                        \"https:\/\/upload.wikimedia.org\/w...\",\r\n                        \"https:\/\/upload.wikimedia.org\/w...\",\r\n                        \"https:\/\/upload.wikimedia.org\/w...\",\r\n                        \"https:\/\/upload.wikimedia.org\/w...\",\r\n                        \"\"\r\n                    ],\r\n                    \"type\": \"string\"\r\n                },\r\n                \"name\": {\r\n                    \"#docs\": 109,\r\n                    \"%docs\": 100,\r\n                    \"samples\": [\r\n                        \"Bush Hall\",\r\n                        \"Earl's Court Exhibition Centre\",\r\n                        \"Fulham FC\",\r\n                        \"Hippodrome of Saint-Ponchon\",\r\n                        \"Hollywood Wax Museum\"\r\n                    ],\r\n                    \"type\": \"string\"\r\n                },\r\n                \"phone\": {\r\n                    \"#docs\": [\r\n                        106,\r\n                        3\r\n                    ],\r\n                    \"%docs\": [\r\n                        97.24,\r\n                        2.75\r\n                    ],\r\n                    \"samples\": [\r\n                        [\r\n                            null\r\n                        ],\r\n                        [\r\n                            \"+44 20 7385-1200\",\r\n                            \"+44 20 8222-6955\",\r\n                            \"+44 870 442 1222\"\r\n                        ]\r\n                    ],\r\n                    \"type\": [\r\n                        \"null\",\r\n                        \"string\"\r\n                    ]\r\n                },\r\n                \"price\": {\r\n                    \"#docs\": [\r\n                        108,\r\n                        1\r\n                    ],\r\n                    \"%docs\": [\r\n                        99.08,\r\n                        0.91\r\n                    ],\r\n                    \"samples\": [\r\n                        [\r\n                            null\r\n                        ],\r\n                        [\r\n                            \"Adults (13+) $15.95, children ...\"\r\n                        ]\r\n                    ],\r\n                    \"type\": [\r\n                        \"null\",\r\n                        \"string\"\r\n                    ]\r\n                },\r\n                \"state\": {\r\n                    \"#docs\": [\r\n                        3,\r\n                        106\r\n                    ],\r\n                    \"%docs\": [\r\n                        2.75,\r\n                        97.24\r\n                    ],\r\n                    \"samples\": [\r\n                        [\r\n                            null\r\n                        ],\r\n                        [\r\n                            \"Alsace-Champagne-Ardenne-Lorra...\",\r\n                            \"Basse-Normandie\",\r\n                            \"California\",\r\n                            \"Provence-Alpes-C\u00f4te d'Azur\",\r\n                            \"\u00cele-de-France\"\r\n                        ]\r\n                    ],\r\n                    \"type\": [\r\n                        \"null\",\r\n                        \"string\"\r\n                    ]\r\n                },\r\n                \"title\": {\r\n                    \"#docs\": 109,\r\n                    \"%docs\": 100,\r\n                    \"samples\": [\r\n                        \"Carpentras\",\r\n                        \"Hollywood\",\r\n                        \"London\/Hammersmith and Fulham\",\r\n                        \"London\/South Kensington-Chelse...\",\r\n                        \"Wales Coast Path\"\r\n                    ],\r\n                    \"type\": \"string\"\r\n                },\r\n                \"tollfree\": {\r\n                    \"#docs\": 109,\r\n                    \"%docs\": 100,\r\n                    \"samples\": [\r\n                        null\r\n                    ],\r\n                    \"type\": \"null\"\r\n                },\r\n                \"type\": {\r\n                    \"#docs\": 109,\r\n                    \"%docs\": 100,\r\n                    \"samples\": [\r\n                        \"landmark\"\r\n                    ],\r\n                    \"type\": \"string\"\r\n                },\r\n                \"url\": {\r\n                    \"#docs\": [\r\n                        106,\r\n                        3\r\n                    ],\r\n                    \"%docs\": [\r\n                        97.24,\r\n                        2.75\r\n                    ],\r\n                    \"samples\": [\r\n                        [\r\n                            null\r\n                        ],\r\n                        [\r\n                            \"https:\/\/www.bushhallmusic.co.uk...\",\r\n                            \"https:\/\/www.eco.co.uk\/\",\r\n                            \"https:\/\/www.fulhamfc.com\/\"\r\n                        ]\r\n                    ],\r\n                    \"type\": [\r\n                        \"null\",\r\n                        \"string\"\r\n                    ]\r\n                }\r\n            },\r\n            \"type\": \"object\"\r\n        },\r\n        {\r\n            \"#docs\": 23,\r\n            \"$schema\": \"https:\/\/json-schema.org\/draft-06\/schema\",\r\n            \"Flavor\": \"`type` = \\\"hotel\\\"\",\r\n            \"properties\": {\r\n                \"address\": {\r\n                    \"#docs\": [\r\n                        2,\r\n                        21\r\n                    ],\r\n                    \"%docs\": [\r\n                        8.69,\r\n                        91.3\r\n                    ],\r\n                    \"samples\": [\r\n                        [\r\n                            null\r\n                        ],\r\n                        [\r\n                            \"68, rue de Longchamp\",\r\n                            \"Capstone Road, ME7 3JE\",\r\n                            \"Gower Holiday Village, Scurlag...\",\r\n                            \"Knockard Road,PH16 5HJ, 0870 0...\",\r\n                            \"Llanbedrgoch\"\r\n                        ]\r\n                    ],\r\n                    \"type\": [\r\n                        \"null\",\r\n                        \"string\"\r\n                    ]\r\n                },\r\n                \"alias\": {\r\n                    \"#docs\": [\r\n                        22,\r\n                        1\r\n                    ],\r\n                    \"%docs\": [\r\n                        95.65,\r\n                        4.34\r\n                    ],\r\n                    \"samples\": [\r\n                        [\r\n                            null\r\n                        ],\r\n                        [\r\n                            \"former Concorde Lafayette\"\r\n                        ]\r\n                    ],\r\n                    \"type\": [\r\n                        \"null\",\r\n                        \"string\"\r\n                    ]\r\n                },\r\n                \"checkin\": {\r\n                    \"#docs\": [\r\n                        22,\r\n                        1\r\n                    ],\r\n                    \"%docs\": [\r\n                        95.65,\r\n                        4.34\r\n                    ],\r\n                    \"samples\": [\r\n                        [\r\n                            null\r\n                        ],\r\n                        [\r\n                            \"3PM\"\r\n                        ]\r\n                    ],\r\n                    \"type\": [\r\n                        \"null\",\r\n                        \"string\"\r\n                    ]\r\n                },\r\n                \"checkout\": {\r\n                    \"#docs\": [\r\n                        22,\r\n                        1\r\n                    ],\r\n                    \"%docs\": [\r\n                        95.65,\r\n                        4.34\r\n                    ],\r\n                    \"samples\": [\r\n                        [\r\n                            null\r\n                        ],\r\n                        [\r\n                            \"noon\"\r\n                        ]\r\n                    ],\r\n                    \"type\": [\r\n                        \"null\",\r\n                        \"string\"\r\n                    ]\r\n                },\r\n                \"city\": {\r\n                    \"#docs\": [\r\n                        1,\r\n                        22\r\n                    ],\r\n                    \"%docs\": [\r\n                        4.34,\r\n                        95.65\r\n                    ],\r\n                    \"samples\": [\r\n                        [\r\n                            null\r\n                        ],\r\n                        [\r\n                            \"Inyo County\",\r\n                            \"Medway\",\r\n                            \"Paris\",\r\n                            \"Pitlochry\",\r\n                            \"Riverside County\"\r\n                        ]\r\n                    ],\r\n                    \"type\": [\r\n                        \"null\",\r\n                        \"string\"\r\n                    ]\r\n                },\r\n                \"country\": {\r\n                    \"#docs\": 23,\r\n                    \"%docs\": 100,\r\n                    \"samples\": [\r\n                        \"France\",\r\n                        \"United Kingdom\",\r\n                        \"United States\"\r\n                    ],\r\n                    \"type\": \"string\"\r\n                },\r\n                \"description\": {\r\n                    \"#docs\": 23,\r\n                    \"%docs\": 100,\r\n                    \"samples\": [\r\n                        \"(Year Round).  This RV campgro...\",\r\n                        \"3-star boutique hotel.\",\r\n                        \"40 bed summer hostel about 3 m...\",\r\n                        \"Easily accessible from West En...\",\r\n                        \"Great 62 bed hostel near the t...\"\r\n                    ],\r\n                    \"type\": \"string\"\r\n                },\r\n                \"directions\": {\r\n                    \"#docs\": [\r\n                        22,\r\n                        1\r\n                    ],\r\n                    \"%docs\": [\r\n                        95.65,\r\n                        4.34\r\n                    ],\r\n                    \"samples\": [\r\n                        [\r\n                            null\r\n                        ],\r\n                        [\r\n                            \"downtown\"\r\n                        ]\r\n                    ],\r\n                    \"type\": [\r\n                        \"null\",\r\n                        \"string\"\r\n                    ]\r\n                },\r\n                \"email\": {\r\n                    \"#docs\": [\r\n                        22,\r\n                        1\r\n                    ],\r\n                    \"%docs\": [\r\n                        95.65,\r\n                        4.34\r\n                    ],\r\n                    \"samples\": [\r\n                        [\r\n                            null\r\n                        ],\r\n                        [\r\n                            \"julia@number38thegower.co.uk\"\r\n                        ]\r\n                    ],\r\n                    \"type\": [\r\n                        \"null\",\r\n                        \"string\"\r\n                    ]\r\n                },\r\n                \"fax\": {\r\n                    \"#docs\": [\r\n                        22,\r\n                        1\r\n                    ],\r\n                    \"%docs\": [\r\n                        95.65,\r\n                        4.34\r\n                    ],\r\n                    \"samples\": [\r\n                        [\r\n                            null\r\n                        ],\r\n                        [\r\n                            \"+1-310-821-8098\"\r\n                        ]\r\n                    ],\r\n                    \"type\": [\r\n                        \"null\",\r\n                        \"string\"\r\n                    ]\r\n                },\r\n                \"free_breakfast\": {\r\n                    \"#docs\": 23,\r\n                    \"%docs\": 100,\r\n                    \"samples\": [\r\n                        false,\r\n                        true\r\n                    ],\r\n                    \"type\": \"boolean\"\r\n                },\r\n                \"free_internet\": {\r\n                    \"#docs\": 23,\r\n                    \"%docs\": 100,\r\n                    \"samples\": [\r\n                        false,\r\n                        true\r\n                    ],\r\n                    \"type\": \"boolean\"\r\n                },\r\n                \"free_parking\": {\r\n                    \"#docs\": 23,\r\n                    \"%docs\": 100,\r\n                    \"samples\": [\r\n                        false,\r\n                        true\r\n                    ],\r\n                    \"type\": \"boolean\"\r\n                },\r\n                \"geo\": {\r\n                    \"#docs\": 23,\r\n                    \"%docs\": 100,\r\n                    \"properties\": {\r\n                        \"accuracy\": {\r\n                            \"#docs\": 23,\r\n                            \"%docs\": 100,\r\n                            \"samples\": [\r\n                                \"APPROXIMATE\",\r\n                                \"RANGE_INTERPOLATED\",\r\n                                \"ROOFTOP\"\r\n                            ],\r\n                            \"type\": \"string\"\r\n                        },\r\n                        \"lat\": {\r\n                            \"#docs\": 23,\r\n                            \"%docs\": 100,\r\n                            \"samples\": [\r\n                                33.9829,\r\n                                36.60545,\r\n                                48.86522,\r\n                                51.35785,\r\n                                56.7049\r\n                            ],\r\n                            \"type\": \"number\"\r\n                        },\r\n                        \"lon\": {\r\n                            \"#docs\": 23,\r\n                            \"%docs\": 100,\r\n                            \"samples\": [\r\n                                -117.14634,\r\n                                -116.1545,\r\n                                -3.7291,\r\n                                0.55818,\r\n                                2.28566\r\n                            ],\r\n                            \"type\": \"number\"\r\n                        }\r\n                    },\r\n                    \"samples\": [\r\n                        {\r\n                            \"accuracy\": \"APPROXIMATE\",\r\n                            \"lat\": 56.7049,\r\n                            \"lon\": -3.7291\r\n                        },\r\n                        {\r\n                            \"accuracy\": \"RANGE_INTERPOLATED\",\r\n                            \"lat\": 36.60545,\r\n                            \"lon\": -117.14634\r\n                        },\r\n                        {\r\n                            \"accuracy\": \"RANGE_INTERPOLATED\",\r\n                            \"lat\": 48.86522,\r\n                            \"lon\": 2.28566\r\n                        },\r\n                        {\r\n                            \"accuracy\": \"RANGE_INTERPOLATED\",\r\n                            \"lat\": 51.35785,\r\n                            \"lon\": 0.55818\r\n                        },\r\n                        {\r\n                            \"accuracy\": \"ROOFTOP\",\r\n                            \"lat\": 33.9829,\r\n                            \"lon\": -116.1545\r\n                        }\r\n                    ],\r\n                    \"type\": \"object\"\r\n                },\r\n                \"id\": {\r\n                    \"#docs\": 23,\r\n                    \"%docs\": 100,\r\n                    \"samples\": [\r\n                        7392,\r\n                        10025,\r\n                        12928,\r\n                        21663,\r\n                        22461\r\n                    ],\r\n                    \"type\": \"number\"\r\n                },\r\n                \"name\": {\r\n                    \"#docs\": 23,\r\n                    \"%docs\": 100,\r\n                    \"samples\": [\r\n                        \"Hotel Longchamp Elys\u00e9es\",\r\n                        \"Medway Youth Hostel\",\r\n                        \"Pitlochry Youth Hostel\",\r\n                        \"Ryan Campground\",\r\n                        \"Stovepipe Wells RV Campground\"\r\n                    ],\r\n                    \"type\": \"string\"\r\n                },\r\n                \"pets_ok\": {\r\n                    \"#docs\": 23,\r\n                    \"%docs\": 100,\r\n                    \"samples\": [\r\n                        false,\r\n                        true\r\n                    ],\r\n                    \"type\": \"boolean\"\r\n                },\r\n                \"phone\": {\r\n                    \"#docs\": [\r\n                        21,\r\n                        2\r\n                    ],\r\n                    \"%docs\": [\r\n                        91.3,\r\n                        8.69\r\n                    ],\r\n                    \"samples\": [\r\n                        [\r\n                            null\r\n                        ],\r\n                        [\r\n                            \"+44 1248 450051\",\r\n                            \"+44 870 770 5964\"\r\n                        ]\r\n                    ],\r\n                    \"type\": [\r\n                        \"null\",\r\n                        \"string\"\r\n                    ]\r\n                },\r\n                \"price\": {\r\n                    \"#docs\": [\r\n                        21,\r\n                        2\r\n                    ],\r\n                    \"%docs\": [\r\n                        91.3,\r\n                        8.69\r\n                    ],\r\n                    \"samples\": [\r\n                        [\r\n                            null\r\n                        ],\r\n                        [\r\n                            \"$10 per night\",\r\n                            \"$23 a night\"\r\n                        ]\r\n                    ],\r\n                    \"type\": [\r\n                        \"null\",\r\n                        \"string\"\r\n                    ]\r\n                },\r\n                \"public_likes\": {\r\n                    \"#docs\": 23,\r\n                    \"%docs\": 100,\r\n                    \"items\": {\r\n                        \"type\": \"string\"\r\n                    },\r\n                    \"maxItems\": 9,\r\n                    \"minItems\": 0,\r\n                    \"samples\": [\r\n                        [],\r\n                        [\r\n                            \"Julius Tromp I\",\r\n                            \"Corrine Hilll\",\r\n                            \"Jaeden McKenzie\",\r\n                            \"Vallie Ryan\",\r\n                            \"Brian Kilback\",\r\n                            \"Lilian McLaughlin\",\r\n                            \"Ms. Moses Feeney\",\r\n                            \"Elnora Trantow\"\r\n                        ],\r\n                        [\r\n                            \"Mr. Franco Collins\",\r\n                            \"Cloyd Stark\",\r\n                            \"Eliseo Herman\"\r\n                        ],\r\n                        [\r\n                            \"Ms. Wiley Torp\",\r\n                            \"Missouri Sauer\",\r\n                            \"Chanel Kirlin\",\r\n                            \"Trystan Rolfson\",\r\n                            \"Mr. Emma Oberbrunner\",\r\n                            \"Marina Stracke\",\r\n                            \"Cody Hand\",\r\n                            \"Tracey Price\",\r\n                            \"Raven Romaguera\"\r\n                        ],\r\n                        [\r\n                            \"Stefan Greenfelder\",\r\n                            \"Rosemary Doyle\",\r\n                            \"Abdullah Lindgren\",\r\n                            \"Gregorio Emard\"\r\n                        ]\r\n                    ],\r\n                    \"type\": \"array\"\r\n                },\r\n                \"reviews\": {\r\n                    \"#docs\": 23,\r\n                    \"%docs\": 100,\r\n                    \"items\": {\r\n                        \"#docs\": 3,\r\n                        \"$schema\": \"https:\/\/json-schema.org\/draft-06\/schema\",\r\n                        \"Flavor\": \"\",\r\n                        \"properties\": {\r\n                            \"author\": {\r\n                                \"#docs\": 3,\r\n                                \"%docs\": 100,\r\n                                \"samples\": [\r\n                                    \"Cornelius Brakus\",\r\n                                    \"Dorcas VonRueden\",\r\n                                    \"Jo Collier\"\r\n                                ],\r\n                                \"type\": \"string\"\r\n                            },\r\n                            \"content\": {\r\n                                \"#docs\": 3,\r\n                                \"%docs\": 100,\r\n                                \"samples\": [\r\n                                    \"A decent-sized room for the lo...\",\r\n                                    \"GOOD DEAL FOR THE PRICE AND LO...\",\r\n                                    \"Stay away of this hotel!! With...\"\r\n                                ],\r\n                                \"type\": \"string\"\r\n                            },\r\n                            \"date\": {\r\n                                \"#docs\": 3,\r\n                                \"%docs\": 100,\r\n                                \"samples\": [\r\n                                    \"2012-09-05 22:33:09 +0300\",\r\n                                    \"2012-09-11 19:21:15 +0300\",\r\n                                    \"2014-06-11 09:35:15 +0300\"\r\n                                ],\r\n                                \"type\": \"string\"\r\n                            },\r\n                            \"ratings\": {\r\n                                \"#docs\": 3,\r\n                                \"%docs\": 100,\r\n                                \"properties\": {\r\n                                    \"Business service (e.g., internet access)\": {\r\n                                        \"#docs\": 1,\r\n                                        \"%docs\": 33.33,\r\n                                        \"samples\": [\r\n                                            1\r\n                                        ],\r\n                                        \"type\": \"number\"\r\n                                    },\r\n                                    \"Check in \/ front desk\": {\r\n                                        \"#docs\": 2,\r\n                                        \"%docs\": 66.66,\r\n                                        \"samples\": [\r\n                                            2,\r\n                                            5\r\n                                        ],\r\n                                        \"type\": \"number\"\r\n                                    },\r\n                                    \"Cleanliness\": {\r\n                                        \"#docs\": 2,\r\n                                        \"%docs\": 66.66,\r\n                                        \"samples\": [\r\n                                            4,\r\n                                            5\r\n                                        ],\r\n                                        \"type\": \"number\"\r\n                                    },\r\n                                    \"Location\": {\r\n                                        \"#docs\": 3,\r\n                                        \"%docs\": 100,\r\n                                        \"samples\": [\r\n                                            2,\r\n                                            3,\r\n                                            5\r\n                                        ],\r\n                                        \"type\": \"number\"\r\n                                    },\r\n                                    \"Overall\": {\r\n                                        \"#docs\": 3,\r\n                                        \"%docs\": 100,\r\n                                        \"samples\": [\r\n                                            1,\r\n                                            4,\r\n                                            5\r\n                                        ],\r\n                                        \"type\": \"number\"\r\n                                    },\r\n                                    \"Rooms\": {\r\n                                        \"#docs\": 3,\r\n                                        \"%docs\": 100,\r\n                                        \"samples\": [\r\n                                            1,\r\n                                            3,\r\n                                            5\r\n                                        ],\r\n                                        \"type\": \"number\"\r\n                                    },\r\n                                    \"Service\": {\r\n                                        \"#docs\": 3,\r\n                                        \"%docs\": 100,\r\n                                        \"samples\": [\r\n                                            2,\r\n                                            3,\r\n                                            5\r\n                                        ],\r\n                                        \"type\": \"number\"\r\n                                    },\r\n                                    \"Value\": {\r\n                                        \"#docs\": 3,\r\n                                        \"%docs\": 100,\r\n                                        \"samples\": [\r\n                                            2,\r\n                                            5\r\n                                        ],\r\n                                        \"type\": \"number\"\r\n                                    }\r\n                                },\r\n                                \"samples\": [\r\n                                    {\r\n                                        \"Cleanliness\": 4,\r\n                                        \"Location\": 3,\r\n                                        \"Overall\": 4,\r\n                                        \"Rooms\": 3,\r\n                                        \"Service\": 3,\r\n                                        \"Value\": 5\r\n                                    }\r\n                                ],\r\n                                \"type\": \"object\"\r\n                            }\r\n                        },\r\n                        \"type\": \"object\"\r\n                    },\r\n                    \"maxItems\": 9,\r\n                    \"minItems\": 0,\r\n                    \"samples\": [\r\n                        [\r\n                            {\r\n                                \"author\": \"Bernhard Armstrong III\",\r\n                                \"content\": \"When I told the cab driver where I was staying, he did a double take. That should have been my warning but since I had no where else to go, I was stuck. To say this place is tired is an understatement. Upon entering, it took me about 10 minutes to locate the 'front desk'...which is little more than a recessed kiosk. I got to the elevator and into my room. The room was cavernous...very large and covered in old stained pink carpeting. The doors rattled and the lock didn't seem secure. At night, I wedged a chair against the door for added protection. This was a huge room but the sparse furniture in the room was all set around the walls and made the room uncomfortably large. The bed was set against one wall and the small tv was set all the way across the room on an old dresser. It was so far away, the remote didn't work unless I got out of bed and walked up a few feet. The casino itself is old...old...old. Carpeting is old, stained and tired. Much like the elephant's graveyard, I truly believe this is where gamblers to go die. I played some texas hold 'em there and true to some of the 'press' the owner sat down and played with us. He was a nice enough guy but has some serious health problems and drank himself into a stupor while playing. The drink lady obviously knew him well and had been there for years. She was visibly concerned about his health and questioned his drinking...which just aggrevated the owner. It was not a pleasant scene and was actually depressing. The owner eventually staggered away. While at the table, I struck up a conversation with the guy next to me. We were having a pleasant conversation and this particular dealer ragged on us incessantly about 'table talking'. I like social games and that's half the fun but this guy ragged us to the point that we quit tipping him. The other guy eventually told the dealer to go ---- himself and left and I followed suit. The casino is a block off from the Fremont Street Experience and block you have to cross is a concern. The cab driver warned me not to be out at night in that area. He said there were a lot of crack heads and they were known to mug people. I ended up playing downtown a lot but made my way back before dark each evening. Careful Kitty's is ok. It's an old diner. Food was alright and the service was friendly. There were lots of old tired-looking people hanging around who appeared to have health related problems. I'm truly sorry for these people but I was there to have fun and it was just depressing. I went back there once with my girlfriend to show her the place. She couldn't believe I actually stayed there. She played some slots and then said that the place 'creeped' her out and she wanted to leave NOW... I'll stay downtown anytime and actually prefer it to the strip but I'll never make this mistake again. The room was cheap but I paid a much higher price by sacrificing my enjoyment. I've been to Vegas many times and this was, by far, the worse experience I've ever had.\",\r\n                                \"date\": \"2012-03-26 11:54:35 +0300\",\r\n                                \"ratings\": {\r\n                                    \"Cleanliness\": 2,\r\n                                    \"Overall\": 1,\r\n                                    \"Rooms\": 1,\r\n                                    \"Service\": 3,\r\n                                    \"Value\": 1\r\n                                }\r\n                            }\r\n                        ],\r\n                        [\r\n                            {\r\n                                \"author\": \"Jo Collier\",\r\n                                \"content\": \"A decent-sized room for the low $100s two stops from Times Square on the express train. If you're looking to see New York (and not spend your days at your accommodation) Hotel Newton works very well. It's a nice place, seems well kept. Had no trouble at all-- worked great as a place to sleep and keep our stuff while we touristed. It is walking distance from few things, but the location's best because you're a block and a half from the 96th st station, which will take you downtown pretty quickly on an express train.\",\r\n                                \"date\": \"2014-06-11 09:35:15 +0300\",\r\n                                \"ratings\": {\r\n                                    \"Cleanliness\": 4,\r\n                                    \"Location\": 3,\r\n                                    \"Overall\": 4,\r\n                                    \"Rooms\": 3,\r\n                                    \"Service\": 3,\r\n                                    \"Value\": 5\r\n                                }\r\n                            },\r\n                            {\r\n                                \"author\": \"Cornelius Brakus\",\r\n                                \"content\": \"Stay away of this hotel!! With the same price you could have hotel with better location, clean room and own bathroom. Our room was very small, awfully cold, dirty (and the cleaning lady did not clean it while on our stay) and the shared bathroom was awful. Our stay did feel like we would be in a motel. Also, this is not a three star hotel as it did say on Booking.com, this is fairly a 1 star hotel, or more like a hostel.\",\r\n                                \"date\": \"2012-09-05 22:33:09 +0300\",\r\n                                \"ratings\": {\r\n                                    \"Business service (e.g., internet access)\": 1,\r\n                                    \"Check in \/ front desk\": 2,\r\n                                    \"Location\": 2,\r\n                                    \"Overall\": 1,\r\n                                    \"Rooms\": 1,\r\n                                    \"Service\": 2,\r\n                                    \"Value\": 2\r\n                                }\r\n                            },\r\n                            {\r\n                                \"author\": \"Dorcas VonRueden\",\r\n                                \"content\": \"GOOD DEAL FOR THE PRICE AND LOCATION,a friendly,helpful staff..rooms are clean,rm 502,503 view of broadway.. nothing to see but cars.. quiet ,safe area,,rite aid close by,mcdonald's for nite snacks. Sept 2008 visit, 4 adults 2 rooms,..saved 500.00-600.00 each by staying here instead of Sheraton or Park Central. The Newton hotel is ideally located on the main subway line at 96th Street. An express Brooklyn bound train takes you to the heart of Times Sqaure in just a few minutes. We would stay here again.. looked at many sites, not disappointed in the pick..\",\r\n                                \"date\": \"2012-09-11 19:21:15 +0300\",\r\n                                \"ratings\": {\r\n                                    \"Check in \/ front desk\": 5,\r\n                                    \"Cleanliness\": 5,\r\n                                    \"Location\": 5,\r\n                                    \"Overall\": 5,\r\n                                    \"Rooms\": 5,\r\n                                    \"Service\": 5,\r\n                                    \"Value\": 5\r\n                                }\r\n                            }\r\n                        ],\r\n                        [\r\n                            {\r\n                                \"author\": \"Joshua Rogahn\",\r\n                                \"content\": \"I am a very demanding traveller and the AVIA exceeded my expectations with the delivery of a 5 star hotel experience at a 3 star rate. Beautiful new hotel with outstanding room amenities (double sided fireplace, huge flatscreen TV's, tasteful and modern decoration, comfy beds etc.). Concierge was very helpful, connected and knowledgeable and it became readily apparent that she truly cares about the guests' experience in Napa. Restaurant recommendations were \\\"spot on\\\" and she booked us on a truly memorable, first class tour of the Napa Valley (at a fraction of the price and hassle of what we could have arranged ourselves). An all round excellent experience here.\",\r\n                                \"date\": \"2013-12-22 18:40:29 +0300\",\r\n                                \"ratings\": {\r\n                                    \"Overall\": 5\r\n                                }\r\n                            },\r\n                            {\r\n                                \"author\": \"Madisyn Greenholt\",\r\n                                \"content\": \"What a wonderful find! Nestled in the heart of downtown is this \\\"urban oasis\\\" that delivers a warm and hospitable lodging experience. A definite departure from some of the \\\"teddy bear and lace\\\" experiences from previous trips, the AVIA Napa starts and ends with you feeling as if you were a long-lost member of the family, home for a short visit. The rooms are comfortable and inviting. Appointed with luxurious linens that covered one of the most comfortable beds that we have ever slept in. The bathrooms are bright and spacious with plenty of room for two. Our room had a lovely soaking tub and a large flat screen television. The restaurant only serves breakfast and lunch, which works out fine since most people are out wine tasting or shopping during the day. Breakfast was a feast for the eyes and the stomach, offering everything from steel cut oatmeal to perfect omelets. The dinner menu features a variety of delectable \\\"small plates\\\" with something for every palate. Everything was very good!\",\r\n                                \"date\": \"2013-11-10 19:53:53 +0300\",\r\n                                \"ratings\": {\r\n                                    \"Cleanliness\": 5,\r\n                                    \"Location\": 5,\r\n                                    \"Overall\": 5,\r\n                                    \"Rooms\": 5,\r\n                                    \"Service\": 5,\r\n                                    \"Value\": 5\r\n                                }\r\n                            },\r\n                            {\r\n                                \"author\": \"Griffin Barton\",\r\n                                \"content\": \"stayed here during my last trip. the rooms are clean. bathroom is big but not that functional. free wifi and bottled water. location is quite a walk from nathan road, so if you intent to go back and forth your hotel room you might find it a task. there is noise that you can hear inside the room on weekend nights because there are clubs near the hotel. overall it is still good value!\",\r\n                                \"date\": \"2014-05-05 23:33:30 +0300\",\r\n                                \"ratings\": {\r\n                                    \"Cleanliness\": 5,\r\n                                    \"Location\": 4,\r\n                                    \"Overall\": 5,\r\n                                    \"Rooms\": 5,\r\n                                    \"Service\": 4,\r\n                                    \"Sleep Quality\": 5,\r\n                                    \"Value\": 5\r\n                                }\r\n                            },\r\n                            {\r\n                                \"author\": \"Marguerite Crist\",\r\n                                \"content\": \"Good location! Worth it to spend a little more on the deluxe room. Although for some weird reason the lift always smelled of cigarettes! Don't know why?!? Non smoking rooms no smell.\",\r\n                                \"date\": \"2013-10-21 19:04:09 +0300\",\r\n                                \"ratings\": {\r\n                                    \"Cleanliness\": 4,\r\n                                    \"Location\": 5,\r\n                                    \"Overall\": 4,\r\n                                    \"Rooms\": 4,\r\n                                    \"Service\": 3,\r\n                                    \"Value\": 3\r\n                                }\r\n                            }\r\n                        ],\r\n                        [\r\n                            {\r\n                                \"author\": \"Miss Alycia Schulist\",\r\n                                \"content\": \"Such an awesome &amp; trendy hotel! As my husband says : 'Off it's head' Wish we got to stay longer. A surpise or two in our room each day, from lolliops to water to chocolates. Cant wait to get back there\",\r\n                                \"date\": \"2015-08-06 06:15:56 +0300\",\r\n                                \"ratings\": {\r\n                                    \"Cleanliness\": 5,\r\n                                    \"Overall\": 5,\r\n                                    \"Service\": 5,\r\n                                    \"Sleep Quality\": 5,\r\n                                    \"Value\": 5\r\n                                }\r\n                            },\r\n                            {\r\n                                \"author\": \"Reynold O'Connell\",\r\n                                \"content\": \"We have just returned from a flying visit to Barcelona to visit family and friends. A great excuse to travel at any time but now having had the \\\"ME experience\\\" we are saving the pennies (or cents) at a furious rate so we can head back as soon as possible. The hotel is located just off Avenguda Diagonal, not so far from the \\\"Gherkin\\\" building and was easily reached by airport bus transfer and short taxi ride. First impressions at reception were very good indeed. It is a boutique style hotel and the mood is nicely understated - not pretentious but very welcoming. After a speedy check - in we were shown to our rooms on the 23 rd floor. We were very fortunate to be able to have booked a suite and nothing at all disappointed, from the spectacular views of the city to the high quality furnishings and extras provided. All the electronics are Sony, Philips etc. and the bathroom complimentaries are all high quality brands. The hotel provides just about everything in the room for your stay as standard and anything else is just a phone call to reception away. Our rooms also meant that we had access to the \\\"Level\\\". This is a lounge on the 25 th floor where guests can avail themselves of complimentary beer, wine, spirits and light snacks which are refreshed throughout the day. It's a great place to meet for breakfast or for drinks before you venture out into the city. The hotel restaurant has recently been awarded it's first Michelin star and we met the chef on a tour of the hotel. He took great pleasure in showing us his kitchens which were prepping up for that evenings sittings. And that also sums up the whole attitude of the staff at this hotel. They are all obviously proud of their hotel and the work that they do in there. If they can do anything for you, it is done well and with a lovely manner. Our stay in Barcelona was greatly enhanced by our stay in the ME hotel - I hope yours will be too\",\r\n                                \"date\": \"2014-05-11 05:34:53 +0300\",\r\n                                \"ratings\": {\r\n                                    \"Cleanliness\": 5,\r\n                                    \"Location\": 4,\r\n                                    \"Overall\": 5,\r\n                                    \"Rooms\": 5,\r\n                                    \"Service\": 5,\r\n                                    \"Sleep Quality\": 5,\r\n                                    \"Value\": 5\r\n                                }\r\n                            },\r\n                            {\r\n                                \"author\": \"Elton Willms IV\",\r\n                                \"content\": \"When you arrive after a day of sightseeing at 5:30pm and your room is not yet cleaned... I leave it up to you to decide whether this is your type of hotel. So now you have to wait out in the passage or the foyer for them to clean the room...! (NO we did NOT accidentally leave the \\\"Do not disturb\\\" signs on the door or anything else that could have prevented them from cleaning the room - we were out of the room at 9am) Also have the following comments on the hotel; 1. Rooms on the small side 2. No Tea\/Coffee facilities in the room - Room service took 35min to deliver 4 coffees at a cost of around EUR 20 3. No bath - sure the hotel is funcky but a nice bath after a day out is really nice 4. Agree with previous reviewer regarding the light\/curtain swithes that can be confusing. I'm in IT and it took me a while to work it out. The curtain slider in our room was out of order. 5. Lighting in the room not suitable for getting any work done. Some people are lucky to go on a work trip or vacation without having to work at night, well I had to and it was very taxing on the eyes. 6. Location is NOT close to La Rambla or Gothic Q as suggested by other reviewers. No quick return to the hotel. Nearest tube station about 3 blocks away. Must say it is nice and quiet. 7. Privacy in bathroom. Guess some guests may find it spectacular - not me. If price is your determining factor, you may enjoy this hotel. Please do not expect old world charm. This is all very modern steel and glass.\",\r\n                                \"date\": \"2014-06-09 15:13:13 +0300\",\r\n                                \"ratings\": {\r\n                                    \"Cleanliness\": 3,\r\n                                    \"Location\": 2,\r\n                                    \"Overall\": 2,\r\n                                    \"Rooms\": 2,\r\n                                    \"Service\": 2,\r\n                                    \"Sleep Quality\": 2,\r\n                                    \"Value\": 3\r\n                                }\r\n                            },\r\n                            {\r\n                                \"author\": \"Arjun Turner\",\r\n                                \"content\": \"We (me and my husband ) have been to many hotels all over Europe but I really don't think we will visit this particular one in the future again.We stayed at ME Barcelona between 11\/09 to 17\/09 during a medical congress my husband had to attend .Our room was viewing the pool and part of the city (it was at the 7th floor) ,but it wasn't the location that mattered at all .The room had only a chair next to the desk and a sofa beside the bed itself . There was no lamp on the desk and the lamp over the sofa didn't work .Also my reading lamp (on my side of the bed ) didn't work .The lighting therefore was very poor for anyone who would like to work or write or read . The only bearable spot to do all that was just ONE SIDE OF THE BED .Beside all this , (and the most annoying ) every time the shower in the room just over our own was used , water was running inside our OWN shower from the ceiling . Shall I mention that TV didn't work ? ( we didn't care about this that much though) .We mentioned the lamps and the shower problem to the concierge ( all of them are very friendly and speak very good english ) and as a result somebody knocked our door once and mentioned the lamps but at that particular time I was resting and couldn't receive him .No second attempt was made after that apparently . To the positive side I will mention that due to a party that would have taken place during our last night at the hotel we were offered a level room (20th floor )to avoid the inconvenience of the noise, where all lamps were working at least and you wouldn't have to fret if your unknown upper level neighbor would think to take his\/her shower at the same time as you. Beside that ,breakfast was decent and for all that are kin in modern cold design the hotel is a treat .The area is a disadvantage though , the stench from the sewers was at some points unbearable the minute you stepped outside the hotel gate.\",\r\n                                \"date\": \"2014-09-08 13:41:38 +0300\",\r\n                                \"ratings\": {\r\n                                    \"Cleanliness\": 3,\r\n                                    \"Location\": 2,\r\n                                    \"Overall\": 2,\r\n                                    \"Rooms\": 2,\r\n                                    \"Service\": 2,\r\n                                    \"Sleep Quality\": 4,\r\n                                    \"Value\": 2\r\n                                }\r\n                            },\r\n                            {\r\n                                \"author\": \"Miss Abelardo Mitchell\",\r\n                                \"content\": \"We stayed here for 4 nights in June having just spent 3 nights in the W Barcelona. We booked on Last Minute.com so got a cheaper price than normal room rates however it was still more expensive than other hotels closer to the city centre. We were wanting a bit of luxury for a week and thought Barcelona was ideal for a part relaxing beach\/sun holiday and part city break. We only booked this hotel because it had a pool and a 5* rating. We arrived at the hotel and the check-in queue was enormous so we had a relaxing drink in the comfortable bar area. To be fair check in was quick once we got the front of the queue but the entire foyer area smelt a bit wierd. The place is trying too hard to be cool with dubious colour choices for furnishings and steel walls??!!! Our room was ok the bed very comfortable and we got a good nights sleep (we were woken every morning by the maids at about 9am though). The bathroom had no extractor ran that we could find and after a shower the condensation ran down the glass panel separating the room from the bathroom and left dirty marks on the window ledge. I wouldn't say the room was spotless but it was adequate. This hotel was in quite a poor location - ok so fairly close to the nearest tube station (10 mins walk) and tram stop (5 mins) but a way out of the city. Cabs in barcelona are fairly cheap though so this isn't really a massive issue. The worst part about our stay was that on our last day we were enjoying the sun in the pool area when we were asked to leave due to there being a private party in the area. There was no pre warning or notification of this and we had to get up and tramp down to the beach via the tube to enjoy our last day of sun (I am 5 months pregnant with twins so was hoping for a relaxing day!!!!!!!!) I wouldn't recommend this hotel if you are expecting 5* luxury. If you are happy for 3-4* quality and service in a fairly poor location this hotel could just be for you!\",\r\n                                \"date\": \"2013-11-27 03:52:23 +0300\",\r\n                                \"ratings\": {\r\n                                    \"Cleanliness\": 2,\r\n                                    \"Location\": 1,\r\n                                    \"Overall\": 3,\r\n                                    \"Rooms\": 3,\r\n                                    \"Service\": 2,\r\n                                    \"Sleep Quality\": 4,\r\n                                    \"Value\": 2\r\n                                }\r\n                            },\r\n                            {\r\n                                \"author\": \"Abdullah Lubowitz\",\r\n                                \"content\": \"... all that glitters, is not gold and the Hotel Me really didn't hit a good note with me. We were here for a business convention and on first look, the hotel and the rooms look great - until you try to utilise them. The hotel is a taxi ride to any tourist areas of Barcelona or a 30 min walk. There is a decent area about 8 mins walk for restaurants but this is NOT a city centre hotel. The rooms are attempting to be model and minimalist but end up being unfunctional and uncomfortable. Here's my room issues: 1. No kettle\/coffee maker in the room. Virtually unheard of in a hotel of it's \\\"class\\\". 2. Cement floor in room, slippery when wet and cold. Carpets, wood, whatever ... not this cheap alternative. 3. Chair at desk is not a work station chair but a cheap, \\\"trendy\\\" plastic design - not good. 4. Impossible to shower without getting the bathroom floor drenched. 5. The wrap around curtain on 2 walls ... whose idea was this? Only one wall is window but the curtain covers both and is VERY slow on it's automatic open\/close. Furthermore, it didn't close all the way and left a 3 inch gap for the light to stream in at 6am. 6. There is a control panel for all the lights and AC. Each button pressed done something different, each time. Everybody I spoke to had this problem. 7 Outrageously priced mini-bar and room service (18Euro for a hamburger) and as your miles from anyway, it's a good weight loss hotel! Beds were good, TV was ok, other bathroom facilities good - and their maid service is some of the best I've seen. Other problems. Bar staff are worthless. People waiting to be served, while 2 of them stocked and cleaned, 1 served - very slowly. 5euro for a 330ml glass of tap beer is twice the price of anywhere we drank. Outside the elevators on every floor smelled of toilets - probably because the rooms toilets backed onto that area. Poor ventilation? Breakfast is a very generous 11am finish except at weekends when it's even better at 12noon. Arriving at 11.05 on a Saturday, we were told it was finished. Questioning why, \\\"because we have to set up for a lunch meeting in this room\\\". Even though we told her the note in the room said 12, when we checked in we were told 12 - she said there is nothing she could do, even though we could see a full buffet breakfast table and people eating. It was only after demanding a manager that another staff member made a call and let us in - it should not have came to this. Smokers - forget it if it rains, there is no area even remotely or partially covered outside! Overall, this hotel just failed. It has a few good points but it's not comfortable, doesn't provide you a feeling of luxury or a level of relaxation and just feels a bit like they don't know what they're doing.\",\r\n                                \"date\": \"2012-03-29 11:12:46 +0300\",\r\n                                \"ratings\": {\r\n                                    \"Cleanliness\": 5,\r\n                                    \"Location\": 1,\r\n                                    \"Overall\": 2,\r\n                                    \"Rooms\": 2,\r\n                                    \"Service\": 3,\r\n                                    \"Sleep Quality\": 2,\r\n                                    \"Value\": 1\r\n                                }\r\n                            },\r\n                            {\r\n                                \"author\": \"Kory Schultz\",\r\n                                \"content\": \"We were booked into the ME for 9 nights, we checked out after 3, staff were very unfriendly and unhelpfull. the rooms are among the smallest Ive ever stayed in. Cannot understand how this hotel got rated with 5 star, no way, 3 star at best..The walls in room were marked, the corridors looked as if thay had never been hoovered. The sockets were loose. On the 2nd day, no one cleaned our room or made bed, we had to ring twice for toilet rolls and towels, The air con did not go down past 23. We couldnt wait to check out, we moved to the arts hotel where we found a real 5 star hotel\",\r\n                                \"date\": \"2014-05-19 00:36:42 +0300\",\r\n                                \"ratings\": {\r\n                                    \"Cleanliness\": 1,\r\n                                    \"Location\": 2,\r\n                                    \"Overall\": 1,\r\n                                    \"Rooms\": 1,\r\n                                    \"Service\": 1,\r\n                                    \"Value\": 1\r\n                                }\r\n                            },\r\n                            {\r\n                                \"author\": \"Curt Nolan\",\r\n                                \"content\": \"A visually stunning hotel. The rooms were compact but very well designed. No hint of problems with smells, music and drains that have been mentioned on previous reviews. BUT - two big problems: 1. After being told that I was entitled to one item of clothing to be ironed per day - complimentary, I gave my shirt to the very charming lady who showed me my room. The shirt didn't turn up until 45 minutes after I was supposed to leave the following morning making me late for a meeting. I also had to make several calls to get the shirt back. 2. The 22 Euro club sandwich and fries was inedible. A disgrace. It doesn't matter how beautiful and stylish a hotel is, if it can't get the basics right - it should and will fail. I would have whole heartedly recommended this hotel at 9pm on my day of arrival - now, I wouldn't. That's why it's a shame.\",\r\n                                \"date\": \"2014-08-09 00:49:46 +0300\",\r\n                                \"ratings\": {\r\n                                    \"Cleanliness\": 5,\r\n                                    \"Location\": 3,\r\n                                    \"Overall\": 2,\r\n                                    \"Rooms\": 5,\r\n                                    \"Service\": 1,\r\n                                    \"Value\": 3\r\n                                }\r\n                            }\r\n                        ],\r\n                        [\r\n                            {\r\n                                \"author\": \"Ozella Sipes\",\r\n                                \"content\": \"This was our 2nd trip here and we enjoyed it as much or more than last year. Excellent location across from the French Market and just across the street from the streetcar stop. Very convenient to several small but good restaurants. Very clean and well maintained. Housekeeping and other staff are all friendly and helpful. We really enjoyed sitting on the 2nd floor terrace over the entrance and \\\"people-watching\\\" on Esplanade Ave., also talking with our fellow guests. Some furniture could use a little updating or replacement, but nothing major.\",\r\n                                \"date\": \"2013-06-22 18:33:50 +0300\",\r\n                                \"ratings\": {\r\n                                    \"Cleanliness\": 5,\r\n                                    \"Location\": 4,\r\n                                    \"Overall\": 4,\r\n                                    \"Rooms\": 3,\r\n                                    \"Service\": 5,\r\n                                    \"Value\": 4\r\n                                }\r\n                            },\r\n                            {\r\n                                \"author\": \"Barton Marks\",\r\n                                \"content\": \"We found the hotel de la Monnaie through Interval and we thought we'd give it a try while we attended a conference in New Orleans. This place was a perfect location and it definitely beat staying downtown at the Hilton with the rest of the attendees. We were right on the edge of the French Quarter withing walking distance of the whole area. The location on Esplanade is more of a residential area so you are near the fun but far enough away to enjoy some quiet downtime. We loved the trolly car right across the street and we took that down to the conference center for the conference days we attended. We also took it up Canal Street and nearly delivered to the WWII museum. From there we were able to catch a ride to the Garden District - a must see if you love old architecture - beautiful old homes(mansions). We at lunch ate Joey K's there and it was excellent. We ate so many places in the French Quarter I can't remember all the names. My husband loved all the NOL foods - gumbo, jambalya and more. I'm glad we found the Louisiana Pizza Kitchen right on the other side of the U.S. Mint (across the street from Monnaie). Small little spot but excellent pizza! The day we arrived was a huge jazz festival going on across the street. However, once in our rooms, you couldn't hear any outside noise. Just the train at night blowin it's whistle! We enjoyed being so close to the French Market and within walking distance of all the sites to see. And you can't pass up the Cafe du Monde down the street - a busy happenning place with the best French dougnuts!!!Delicious! We will defintely come back and would stay here again. We were not hounded to purchase anything. My husband only received one phone call regarding timeshare and the woman was very pleasant. The staff was laid back and friendly. My only complaint was the very firm bed. Other than that, we really enjoyed our stay. Thanks Hotel de la Monnaie!\",\r\n                                \"date\": \"2015-03-02 19:56:13 +0300\",\r\n                                \"ratings\": {\r\n                                    \"Business service (e.g., internet access)\": 4,\r\n                                    \"Check in \/ front desk\": 4,\r\n                                    \"Cleanliness\": 4,\r\n                                    \"Location\": 4,\r\n                                    \"Overall\": 4,\r\n                                    \"Rooms\": 3,\r\n                                    \"Service\": 3,\r\n                                    \"Value\": 5\r\n                                }\r\n                            }\r\n                        ]\r\n                    ],\r\n                    \"type\": \"array\"\r\n                },\r\n                \"state\": {\r\n                    \"#docs\": [\r\n                        21,\r\n                        2\r\n                    ],\r\n                    \"%docs\": [\r\n                        91.3,\r\n                        8.69\r\n                    ],\r\n                    \"samples\": [\r\n                        [\r\n                            null\r\n                        ],\r\n                        [\r\n                            \"California\"\r\n                        ]\r\n                    ],\r\n                    \"type\": [\r\n                        \"null\",\r\n                        \"string\"\r\n                    ]\r\n                },\r\n                \"title\": {\r\n                    \"#docs\": 23,\r\n                    \"%docs\": 100,\r\n                    \"samples\": [\r\n                        \"Death Valley National Park\",\r\n                        \"Gillingham (Kent)\",\r\n                        \"Joshua Tree National Park\",\r\n                        \"Paris\/16th arrondissement\",\r\n                        \"Pitlochry\"\r\n                    ],\r\n                    \"type\": \"string\"\r\n                },\r\n                \"tollfree\": {\r\n                    \"#docs\": [\r\n                        22,\r\n                        1\r\n                    ],\r\n                    \"%docs\": [\r\n                        95.65,\r\n                        4.34\r\n                    ],\r\n                    \"samples\": [\r\n                        [\r\n                            null\r\n                        ],\r\n                        [\r\n                            \"+1-000-821-8277\"\r\n                        ]\r\n                    ],\r\n                    \"type\": [\r\n                        \"null\",\r\n                        \"string\"\r\n                    ]\r\n                },\r\n                \"type\": {\r\n                    \"#docs\": 23,\r\n                    \"%docs\": 100,\r\n                    \"samples\": [\r\n                        \"hotel\"\r\n                    ],\r\n                    \"type\": \"string\"\r\n                },\r\n                \"url\": {\r\n                    \"#docs\": [\r\n                        2,\r\n                        21\r\n                    ],\r\n                    \"%docs\": [\r\n                        8.69,\r\n                        91.3\r\n                    ],\r\n                    \"samples\": [\r\n                        [\r\n                            null\r\n                        ],\r\n                        [\r\n                            \"https:\/\/paris-hotel-longchamp.c...\",\r\n                            \"https:\/\/www.number38thegower.co...\",\r\n                            \"https:\/\/www.syha.org.uk\/hostels...\",\r\n                            \"https:\/\/www.walestouristsonline...\",\r\n                            \"https:\/\/www.yha.org.uk\"\r\n                        ]\r\n                    ],\r\n                    \"type\": [\r\n                        \"null\",\r\n                        \"string\"\r\n                    ]\r\n                },\r\n                \"vacancy\": {\r\n                    \"#docs\": 23,\r\n                    \"%docs\": 100,\r\n                    \"samples\": [\r\n                        false,\r\n                        true\r\n                    ],\r\n                    \"type\": \"boolean\"\r\n                }\r\n            },\r\n            \"type\": \"object\"\r\n        },\r\n        {\r\n            \"#docs\": 3,\r\n            \"$schema\": \"https:\/\/json-schema.org\/draft-06\/schema\",\r\n            \"Flavor\": \"`type` = \\\"airline\\\"\",\r\n            \"properties\": {\r\n                \"callsign\": {\r\n                    \"#docs\": 3,\r\n                    \"%docs\": 100,\r\n                    \"samples\": [\r\n                        \"BEE MED\",\r\n                        \"CYCLONE\",\r\n                        \"REUNION\"\r\n                    ],\r\n                    \"type\": \"string\"\r\n                },\r\n                \"country\": {\r\n                    \"#docs\": 3,\r\n                    \"%docs\": 100,\r\n                    \"samples\": [\r\n                        \"France\",\r\n                        \"United Kingdom\",\r\n                        \"United States\"\r\n                    ],\r\n                    \"type\": \"string\"\r\n                },\r\n                \"iata\": {\r\n                    \"#docs\": 3,\r\n                    \"%docs\": 100,\r\n                    \"samples\": [\r\n                        \"KJ\",\r\n                        \"UU\",\r\n                        \"ZA\"\r\n                    ],\r\n                    \"type\": \"string\"\r\n                },\r\n                \"icao\": {\r\n                    \"#docs\": 3,\r\n                    \"%docs\": 100,\r\n                    \"samples\": [\r\n                        \"CYD\",\r\n                        \"LAJ\",\r\n                        \"REU\"\r\n                    ],\r\n                    \"type\": \"string\"\r\n                },\r\n                \"id\": {\r\n                    \"#docs\": 3,\r\n                    \"%docs\": 100,\r\n                    \"samples\": [\r\n                        792,\r\n                        1191,\r\n                        1543\r\n                    ],\r\n                    \"type\": \"number\"\r\n                },\r\n                \"name\": {\r\n                    \"#docs\": 3,\r\n                    \"%docs\": 100,\r\n                    \"samples\": [\r\n                        \"Access Air\",\r\n                        \"Air Austral\",\r\n                        \"British Mediterranean Airways\"\r\n                    ],\r\n                    \"type\": \"string\"\r\n                },\r\n                \"type\": {\r\n                    \"#docs\": 3,\r\n                    \"%docs\": 100,\r\n                    \"samples\": [\r\n                        \"airline\"\r\n                    ],\r\n                    \"type\": \"string\"\r\n                }\r\n            },\r\n            \"type\": \"object\"\r\n        },\r\n        {\r\n            \"#docs\": 49,\r\n            \"$schema\": \"https:\/\/json-schema.org\/draft-06\/schema\",\r\n            \"Flavor\": \"`type` = \\\"airport\\\"\",\r\n            \"properties\": {\r\n                \"airportname\": {\r\n                    \"#docs\": 49,\r\n                    \"%docs\": 100,\r\n                    \"samples\": [\r\n                        \"Hickam Air Force Base\",\r\n                        \"Joigny\",\r\n                        \"RNAS WATTON\",\r\n                        \"Sky Ranch at Carefree\",\r\n                        \"Villaroche\"\r\n                    ],\r\n                    \"type\": \"string\"\r\n                },\r\n                \"city\": {\r\n                    \"#docs\": 49,\r\n                    \"%docs\": 100,\r\n                    \"samples\": [\r\n                        \"Carefree\",\r\n                        \"Honolulu\",\r\n                        \"Joigny\",\r\n                        \"Melun\",\r\n                        \"WATTON\"\r\n                    ],\r\n                    \"type\": \"string\"\r\n                },\r\n                \"country\": {\r\n                    \"#docs\": 49,\r\n                    \"%docs\": 100,\r\n                    \"samples\": [\r\n                        \"France\",\r\n                        \"United Kingdom\",\r\n                        \"United States\"\r\n                    ],\r\n                    \"type\": \"string\"\r\n                },\r\n                \"faa\": {\r\n                    \"#docs\": [\r\n                        13,\r\n                        36\r\n                    ],\r\n                    \"%docs\": [\r\n                        26.53,\r\n                        73.46\r\n                    ],\r\n                    \"samples\": [\r\n                        [\r\n                            null\r\n                        ],\r\n                        [\r\n                            \"BZR\",\r\n                            \"GRI\",\r\n                            \"IGQ\",\r\n                            \"PRC\",\r\n                            \"RCA\"\r\n                        ]\r\n                    ],\r\n                    \"type\": [\r\n                        \"null\",\r\n                        \"string\"\r\n                    ]\r\n                },\r\n                \"geo\": {\r\n                    \"#docs\": 49,\r\n                    \"%docs\": 100,\r\n                    \"properties\": {\r\n                        \"alt\": {\r\n                            \"#docs\": 49,\r\n                            \"%docs\": 100,\r\n                            \"samples\": [\r\n                                13,\r\n                                173,\r\n                                302,\r\n                                732,\r\n                                2568\r\n                            ],\r\n                            \"type\": \"number\"\r\n                        },\r\n                        \"lat\": {\r\n                            \"#docs\": 49,\r\n                            \"%docs\": 100,\r\n                            \"samples\": [\r\n                                21.318681,\r\n                                33.8180947,\r\n                                47.992222,\r\n                                48.604725,\r\n                                52.33\r\n                            ],\r\n                            \"type\": \"number\"\r\n                        },\r\n                        \"lon\": {\r\n                            \"#docs\": 49,\r\n                            \"%docs\": 100,\r\n                            \"samples\": [\r\n                                -157.922427,\r\n                                -111.8979242,\r\n                                0.51,\r\n                                2.671119,\r\n                                3.392222\r\n                            ],\r\n                            \"type\": \"number\"\r\n                        }\r\n                    },\r\n                    \"samples\": [\r\n                        {\r\n                            \"alt\": 13,\r\n                            \"lat\": 21.318681,\r\n                            \"lon\": -157.922427\r\n                        },\r\n                        {\r\n                            \"alt\": 173,\r\n                            \"lat\": 52.33,\r\n                            \"lon\": 0.51\r\n                        },\r\n                        {\r\n                            \"alt\": 302,\r\n                            \"lat\": 48.604725,\r\n                            \"lon\": 2.671119\r\n                        },\r\n                        {\r\n                            \"alt\": 732,\r\n                            \"lat\": 47.992222,\r\n                            \"lon\": 3.392222\r\n                        },\r\n                        {\r\n                            \"alt\": 2568,\r\n                            \"lat\": 33.8180947,\r\n                            \"lon\": -111.8979242\r\n                        }\r\n                    ],\r\n                    \"type\": \"object\"\r\n                },\r\n                \"icao\": {\r\n                    \"#docs\": [\r\n                        7,\r\n                        42\r\n                    ],\r\n                    \"%docs\": [\r\n                        14.28,\r\n                        85.71\r\n                    ],\r\n                    \"samples\": [\r\n                        [\r\n                            null\r\n                        ],\r\n                        [\r\n                            \"18AZ\",\r\n                            \"EGYR\",\r\n                            \"LFGK\",\r\n                            \"LFPM\",\r\n                            \"PHIK\"\r\n                        ]\r\n                    ],\r\n                    \"type\": [\r\n                        \"null\",\r\n                        \"string\"\r\n                    ]\r\n                },\r\n                \"id\": {\r\n                    \"#docs\": 49,\r\n                    \"%docs\": 100,\r\n                    \"samples\": [\r\n                        1310,\r\n                        1384,\r\n                        4346,\r\n                        7055,\r\n                        8397\r\n                    ],\r\n                    \"type\": \"number\"\r\n                },\r\n                \"type\": {\r\n                    \"#docs\": 49,\r\n                    \"%docs\": 100,\r\n                    \"samples\": [\r\n                        \"airport\"\r\n                    ],\r\n                    \"type\": \"string\"\r\n                },\r\n                \"tz\": {\r\n                    \"#docs\": 49,\r\n                    \"%docs\": 100,\r\n                    \"samples\": [\r\n                        \"America\/Phoenix\",\r\n                        \"Europe\/London\",\r\n                        \"Europe\/Paris\",\r\n                        \"N\",\r\n                        \"Pacific\/Honolulu\"\r\n                    ],\r\n                    \"type\": \"string\"\r\n                }\r\n            },\r\n            \"type\": \"object\"\r\n        }\r\n    ]\r\n    ],\r\n    \"status\": \"success\",\r\n    \"metrics\": {\r\n        \"elapsedTime\": \"441.291712ms\",\r\n        \"executionTime\": \"441.241719ms\",\r\n        \"resultCount\": 1,\r\n        \"resultSize\": 103887\r\n    },\r\n    \"profile\": {\r\n        \"phaseTimes\": {\r\n\t    \"authorize\": \"753.932\u00b5s\",\r\n\t    \"instantiate\": \"6.388\u00b5s\",\r\n\t    \"parse\": \"151.233\u00b5s\",\r\n\t    \"plan\": \"7.117\u00b5s\",\r\n\t    \"run\": \"441.069318ms\"\r\n\t},\r\n        \"phaseOperators\": {\r\n\t    \"authorize\": 1\r\n\t},\r\n        \"executionTimings\": {\r\n\t    \"#operator\": \"Authorize\",\r\n\t    \"#stats\": {\r\n\t        \"#phaseSwitches\": 4,\r\n\t        \"execTime\": \"1.738\u00b5s\",\r\n\t        \"servTime\": \"752.194\u00b5s\"\r\n\t    },\r\n\t    \"privileges\": {\r\n\t        \"List\": [\r\n\t            {\r\n\t                \"Target\": \"travel-sample\",\r\n\t                \"Priv\": 7\r\n\t            }\r\n\t        ]\r\n\t    },\r\n\t    \"~child\": {\r\n\t        \"#operator\": \"Sequence\",\r\n\t        \"#stats\": {\r\n\t            \"#phaseSwitches\": 1,\r\n\t            \"execTime\": \"9.743\u00b5s\"\r\n\t        },\r\n\t        \"~children\": [\r\n\t            {\r\n\t                \"#operator\": \"InferKeyspace\",\r\n\t                \"#stats\": {\r\n\t                    \"#itemsOut\": 1,\r\n\t                    \"#phaseSwitches\": 7,\r\n\t                    \"execTime\": \"9.345\u00b5s\",\r\n\t                    \"kernTime\": \"438.011515ms\"\r\n\t                },\r\n\t                \"keyspace\": \"travel-sample\",\r\n\t                \"namespace\": \"\",\r\n\t                \"using\": \"default\"\r\n\t            },\r\n\t            {\r\n\t                \"#operator\": \"Stream\",\r\n\t                \"#stats\": {\r\n\t                    \"#itemsIn\": 1,\r\n\t                    \"#itemsOut\": 1,\r\n\t                    \"#phaseSwitches\": 6,\r\n\t                    \"execTime\": \"2.257622ms\",\r\n\t                    \"kernTime\": \"438.028393ms\"\r\n\t                }\r\n\t            }\r\n\t        ]\r\n\t    },\r\n\t    \"~versions\": [\r\n\t        \"7.0.0-N1QL\",\r\n\t        \"7.0.0-1784-enterprise\"\r\n\t    ]\r\n\t}\r\n    }\r\n}\r\n<\/pre>\n<p><strong>EXPLICAR<\/strong><\/p>\n<p>Explain te dice el plan de consulta para cada consulta - los \u00edndices elegidos, los predicados y otros pushdowns, tipos de join, orden de join, etc.  Tanto MongoDB como Couchbase producen explain en forma JSON - algo natural para bases de datos JSON.<\/p>\n<pre class=\"theme:vs2012-black font-size:17 line-height:20 height-set:true whitespace-before:2 lang:js decode:true\">MongoDB Enterprise &gt; db.CUSTOMER.find({zip:94040}).explain()\r\n{\r\n\t\"queryPlanner\" : {\r\n\t\t\"plannerVersion\" : 1,\r\n\t\t\"namespace\" : \"test.CUSTOMER\",\r\n\t\t\"indexFilterSet\" : false,\r\n\t\t\"parsedQuery\" : {\r\n\t\t\t\"zip\" : {\r\n\t\t\t\t\"$eq\" : 94040\r\n\t\t\t}\r\n\t\t},\r\n\t\t\"winningPlan\" : {\r\n\t\t\t\"stage\" : \"FETCH\",\r\n\t\t\t\"inputStage\" : {\r\n\t\t\t\t\"stage\" : \"IXSCAN\",\r\n\t\t\t\t\"keyPattern\" : {\r\n\t\t\t\t\t\"zip\" : 1\r\n\t\t\t\t},\r\n\t\t\t\t\"indexName\" : \"zip_1\",\r\n\t\t\t\t\"isMultiKey\" : false,\r\n\t\t\t\t\"multiKeyPaths\" : {\r\n\t\t\t\t\t\"zip\" : [ ]\r\n\t\t\t\t},\r\n\t\t\t\t\"isUnique\" : false,\r\n\t\t\t\t\"isSparse\" : false,\r\n\t\t\t\t\"isPartial\" : false,\r\n\t\t\t\t\"indexVersion\" : 2,\r\n\t\t\t\t\"direction\" : \"forward\",\r\n\t\t\t\t\"indexBounds\" : {\r\n\t\t\t\t\t\"zip\" : [\r\n\t\t\t\t\t\t\"[94040.0, 94040.0]\"\r\n\t\t\t\t\t]\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\t\"rejectedPlans\" : [ ]\r\n\t},\r\n\t\"serverInfo\" : {\r\n\t\t\"host\" : \"MacBook-Pro-4.attlocal.net\",\r\n\t\t\"port\" : 27017,\r\n\t\t\"version\" : \"4.0.0\",\r\n\t\t\"gitVersion\" : \"3b07af3d4f471ae89e8186d33bbb1d5259597d51\"\r\n\t},\r\n\t\"ok\" : 1\r\n}\r\nMongoDB Enterprise &gt; \r\n<\/pre>\n<p>En Couchbase, simplemente precedes la sentencia con EXPLAIN. Puedes explicar cualquier sentencia en N1QL.<\/p>\n<pre class=\"theme:vs2012-black font-size:17 line-height:20 height-set:true whitespace-before:2 lang:js decode:true\">EXPLAIN SELECT * FROM CUSTOMER WHERE zip = 94040;\r\n[\r\n  {\r\n    \"plan\": {\r\n      \"#operator\": \"Sequence\",\r\n      \"~children\": [\r\n        {\r\n          \"#operator\": \"IndexScan3\",\r\n          \"index\": \"ix_customer\",\r\n          \"index_id\": \"b312ed00505a074d\",\r\n          \"index_projection\": {\r\n            \"primary_key\": true\r\n          },\r\n          \"keyspace\": \"CUSTOMER\",\r\n          \"namespace\": \"default\",\r\n          \"spans\": [\r\n            {\r\n              \"exact\": true,\r\n              \"range\": [\r\n                {\r\n                  \"high\": \"94040\",\r\n                  \"inclusion\": 3,\r\n                  \"low\": \"94040\"\r\n                }\r\n              ]\r\n            }\r\n          ],\r\n          \"using\": \"gsi\"\r\n        },\r\n        {\r\n          \"#operator\": \"Fetch\",\r\n          \"keyspace\": \"CUSTOMER\",\r\n          \"namespace\": \"default\"\r\n        },\r\n        {\r\n          \"#operator\": \"Parallel\",\r\n          \"~child\": {\r\n            \"#operator\": \"Sequence\",\r\n            \"~children\": [\r\n              {\r\n                \"#operator\": \"Filter\",\r\n                \"condition\": \"((`CUSTOMER`.`zip`) = 94040)\"\r\n              },\r\n              {\r\n                \"#operator\": \"InitialProject\",\r\n                \"result_terms\": [\r\n                  {\r\n                    \"expr\": \"self\",\r\n                    \"star\": true\r\n                  }\r\n                ]\r\n              }\r\n            ]\r\n          }\r\n        }\r\n      ]\r\n    },\r\n    \"text\": \"SELECT * FROM CUSTOMER WHERE zip = 94040;\"\r\n  }\r\n]<\/pre>\n<p>El banco de trabajo de consultas tambi\u00e9n tiene una explicaci\u00f3n visual junto con la creaci\u00f3n de perfiles. (para una <a href=\"https:\/\/www.couchbase.com\/blog\/es\/ansi-join-support-n1ql\/\">consulta<\/a>)<\/p>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2018\/03\/ANSI-JOIN-multiple-joins-Visual-Explain.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-4830\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2018\/03\/ANSI-JOIN-multiple-joins-Visual-Explain-300x185.png\" alt=\"\" width=\"745\" height=\"460\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/03\/ANSI-JOIN-multiple-joins-Visual-Explain-300x185.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/03\/ANSI-JOIN-multiple-joins-Visual-Explain-1024x632.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/03\/ANSI-JOIN-multiple-joins-Visual-Explain-768x474.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/03\/ANSI-JOIN-multiple-joins-Visual-Explain-1536x948.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/03\/ANSI-JOIN-multiple-joins-Visual-Explain-2048x1264.png 2048w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/03\/ANSI-JOIN-multiple-joins-Visual-Explain-20x12.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/03\/ANSI-JOIN-multiple-joins-Visual-Explain-1320x815.png 1320w\" sizes=\"auto, (max-width: 745px) 100vw, 745px\" \/><\/a><\/p>\n<p><a href=\"https:\/\/docs.couchbase.com\/server\/6.5\/n1ql\/n1ql-language-reference\/groupby.html\">GRUPO POR<\/a><\/p>\n<p>La cl\u00e1usula \"GROUP BY\" de MongoDB forma parte de la API aggregate(). He aqu\u00ed la comparaci\u00f3n.<\/p>\n<p>A diferencia de SQL y N1QL, la API de consulta de MongoDB tiene mucho significado impl\u00edcito sin definiciones formales.  Con N1QL, conoces las agrupaciones (b y c) y agregaciones (SUM(a)) expl\u00edcitamente.<\/p>\n<pre class=\"theme:vs2012-black lang:mysql decode:true\">\/* MongoDB *\/\r\nGrouping and aggregation is combined.\r\n\r\n$group : {\r\n          [\r\n           { a:\u201d$a\u201d}, {b:\u201d$b\u201d}, {c: \u201c$c\u201d},\r\n           count: { $sum: 1 }\r\n         ]\r\n        }\r\n\r\n\/* Couchbase: N1QL *\/\r\nSELECT b, c, SUM(a)\r\nFROM t\r\nGROUP BY b, c\r\n<\/pre>\n<p><a href=\"https:\/\/docs.couchbase.com\/server\/6.5\/n1ql\/n1ql-language-reference\/orderby.html\">ORDENAR POR<\/a><\/p>\n<pre class=\"theme:vs2012-black lang:js decode:true\">\/* MongoDB *\/ \r\nORDER BY\r\n     { $sort : { age : -1, posts: 1 } }\r\n\r\n\/* Couchbase: N1QLL *\/\r\nORDER BY age DESC, posts ASC\r\n<\/pre>\n<p>OFFSET y LIMIT<\/p>\n<p>Estos se utilizan com\u00fanmente para el m\u00e9todo de paginaci\u00f3n offset. tanto Mongo y Couchbase apoyo.  Sin embargo, <a href=\"https:\/\/www.couchbase.com\/blog\/es\/offset-keyset-pagination-n1ql-query-couchbase\/\">paginaci\u00f3n de teclas<\/a> es un enfoque superior que utiliza menos recursos y rinde mejor. Mongo utiliza las cl\u00e1usulas $skip y $limit y N1QL utiliza OFFSET y LIMIT.  No estoy seguro de las optimizaciones de paginaci\u00f3n realizadas en MongoDB.<\/p>\n<p><a href=\"https:\/\/docs.couchbase.com\/server\/6.5\/n1ql\/n1ql-language-reference\/join.html\">Se une a<\/a><\/p>\n<p>Las uniones suelen desaconsejarse en las bases de datos NoSQL y en MongoDB en particular. Pero el mundo real es complejo y no se puede desnormalizar en una sola colecci\u00f3n. MongoDB tiene el operador $lookup para el join y hace un bucle anidado entre una colecci\u00f3n (potencialmente sharded) a otra colecci\u00f3n (no puede ser sharded).   En Couchbase, todos los buckets est\u00e1n particionados (sharded). Operaciones JOINs (INNER JOIN, LEFT OUTER JOIN, RIGHT OUTER JOIN, joins con subconsultas, NEST y UNNEST) Tenemos un art\u00edculo detallado que muestra las operaciones equivalentes entre MongoDB y JSON.  Le recomiendo que lea el art\u00edculo <a href=\"https:\/\/www.couchbase.com\/blog\/es\/joining-json-comparing-couchbase-n1ql-mongodb\/\">Uniendo JSON: Comparando Couchbase y MongoDB.<\/a><\/p>\n<table>\n<tbody>\n<tr>\n<td><b>Tipo de JOIN<\/b><\/td>\n<td><b>MongoDB<\/b><\/td>\n<td><b>Couchbase\u00a0<\/b><\/td>\n<\/tr>\n<tr>\n<td><b>INNER JOIN\u00a0<\/b><\/td>\n<td><span style=\"font-weight: 400\">No. $lookup es un join externo izquierdo limitado s\u00f3lo en colecciones no separadas. Las aplicaciones tienen que hacer eso y luego eliminar los documentos sin los documentos coincidentes.\u00a0\u00a0<\/span><\/td>\n<td><span style=\"font-weight: 400\">La cl\u00e1usula ON requiere una referencia a la clave del documento. S\u00f3lo Equi-join<\/span><\/td>\n<\/tr>\n<tr>\n<td><b>LEFT OUTER JOIN<\/b><\/td>\n<td><span style=\"font-weight: 400\">B\u00fasqueda limitada 1TP4.\u00a0\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">No se pueden unir matrices.  Es necesario aplanar las matrices manualmente antes de la uni\u00f3n.<\/span><\/td>\n<td><span style=\"font-weight: 400\">Uni\u00f3n exterior izquierda completa que incluye predicados de matriz en la cl\u00e1usula ON.<\/span><\/td>\n<\/tr>\n<tr>\n<td><b>UNI\u00d3N EXTERNA DERECHA<\/b><\/td>\n<td><span style=\"font-weight: 400\">No compatible. Debe gestionarse en la aplicaci\u00f3n<\/span><\/td>\n<td><span style=\"font-weight: 400\">Compatibilidad limitada con RIGHT OUTER JOIN; se ha solucionado utilizando otros JOINs.<\/span><\/td>\n<\/tr>\n<tr>\n<td><b>UNI\u00d3N EXTERNA COMPLETA<\/b><\/td>\n<td><span style=\"font-weight: 400\">No compatible. Debe gestionarse en la aplicaci\u00f3n<\/span><\/td>\n<td><span style=\"font-weight: 400\">Trabajado alrededor con el uso de otros JOINs.<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><a href=\"https:\/\/docs.couchbase.com\/server\/6.5\/n1ql\/n1ql-language-reference\/grant.html\">CONCEDER y REVOCAR<\/a><\/p>\n<pre class=\"theme:vs2012-black font-size:17 line-height:20 whitespace-before:2 lang:default decode:true\">\/* MongoDB *\/\r\ndb.grantPrivilegesToRole()\r\ndb.revokePrivilegesFromRole()\r\n\r\n\/* Couchbase: N1QL *\/\r\nGRANT query_select ON orders, customers TO bill, linda;\r\nREVOKE query_update ON `travel-sample` FROM debby\r\n<\/pre>\n<h4><span style=\"color: #0000ff\"><strong><a style=\"color: #0000ff\" href=\"https:\/\/docs.couchbase.com\/server\/6.5\/n1ql\/n1ql-language-reference\/createindex.html\">\u00cdNDICES<\/a><\/strong><\/span><\/h4>\n<p>A continuaci\u00f3n se muestra una visi\u00f3n general de las capacidades de \u00edndice de MongoDB y Couchbase. Ambos tienen una gran variedad de \u00edndices.  Los tipos de \u00edndices de Couchbase y su uso est\u00e1n bien documentados en el art\u00edculo: <a href=\"https:\/\/www.couchbase.com\/blog\/es\/create-right-index-get-right-performance\/\">Cree el \u00edndice correcto y obtenga el rendimiento adecuado<\/a>. Adem\u00e1s, Couchbase cuenta con un asesor de \u00edndices integrado para<a href=\"https:\/\/docs.couchbase.com\/server\/current\/n1ql\/n1ql-language-reference\/advise.html\"> la declaraci\u00f3n individual<\/a> as\u00ed como el <a href=\"https:\/\/docs.couchbase.com\/server\/6.5\/n1ql\/n1ql-language-reference\/advisor.html\">carga de trabajo<\/a> y, adem\u00e1s, tiene la <a href=\"https:\/\/index-advisor.couchbase.com\/indexadvisor\/#1\">Servicio Index Advisor<\/a> que se actualiza mensualmente.<\/p>\n<table>\n<tbody>\n<tr>\n<td><b>Tipo de \u00edndice<\/b><\/td>\n<td><b>MongoDB<\/b><\/td>\n<td><b>Couchbase\u00a0<\/b><\/td>\n<\/tr>\n<tr>\n<td><b>\u00cdndice primario<\/b><\/td>\n<td><b>Escaneado de tablas, \u00edndice primario<\/b><\/td>\n<td><b>\u00cdndice primario<\/b><\/td>\n<\/tr>\n<tr>\n<td><b>\u00cdndice secundario<\/b><\/td>\n<td><b>\u00cdndice secundario<\/b><\/td>\n<td><b>\u00cdndice secundario<\/b><\/td>\n<\/tr>\n<tr>\n<td><b>\u00cdndice compuesto<\/b><\/td>\n<td><b>\u00cdndice compuesto<\/b><\/td>\n<td><b>\u00cdndice compuesto<\/b><\/td>\n<\/tr>\n<tr>\n<td><b>\u00cdndice funcional\u00a0<\/b><\/p>\n<p><b>(\u00cdndice de expresi\u00f3n)<\/b><\/td>\n<td><b>No disponible<\/b><\/td>\n<td><b>\u00cdndice funcional, \u00cdndice de expresi\u00f3n<\/b><\/td>\n<\/tr>\n<tr>\n<td><b>\u00cdndice parcial<\/b><\/td>\n<td><b>No disponible<\/b><\/td>\n<td><b>\u00cdndice parcial<\/b><\/td>\n<\/tr>\n<tr>\n<td><b>\u00cdndice de rango particionado<\/b><\/td>\n<td><b>Rango particionado, Intervalo, Lista, Ref, Hash, \u00cdndice h\u00edbrido particionado<\/b><\/td>\n<td><b>Alcance manual particionado mediante \u00cdndice parcial<\/b><\/td>\n<\/tr>\n<tr>\n<td><b>ARRAY \u00cdndice<\/b><\/td>\n<td><b>1. \u00cdndice basado en \u00e1rbol B con una clave de matriz por \u00edndice.<\/b><\/p>\n<p><b>2. La clave de una matriz puede ser simple o compuesta (multiclave).<\/b><\/td>\n<td><b>1. \u00cdndice basado en \u00e1rbol B con una clave de matriz por \u00edndice.<\/b><\/p>\n<p><b>2. La clave de la matriz puede ser compuesta<\/b><\/p>\n<p><b>3.  Uso de SEARCH(): \u00cdndice basado en \u00e1rbol invertido con un n\u00famero ilimitado de claves de matriz por \u00edndice.<\/b><\/td>\n<\/tr>\n<tr>\n<td><b>\u00cdndice de matrices en expresiones<\/b><\/td>\n<td><b>No disponible<\/b><\/td>\n<td><span style=\"font-weight: 400\">S\u00ed<\/span><\/td>\n<\/tr>\n<tr>\n<td><b>Objetos<\/b><\/td>\n<td><b>S\u00ed<\/b><\/td>\n<td><b>S\u00ed<\/b><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h4><span style=\"color: #0000ff\"><a style=\"color: #0000ff\" href=\"https:\/\/docs.couchbase.com\/server\/current\/fts\/full-text-intro.html\"><strong>B\u00daSQUEDA DE TEXTO COMPLETO<\/strong><\/a><\/span><\/h4>\n<p>El producto MongoDB tiene incorporado <a href=\"https:\/\/docs.mongodb.com\/manual\/text-search\/\">b\u00fasqueda de texto<\/a> y ahora est\u00e1 experimentando con la integraci\u00f3n de Lucene en su servicio Atlas a trav\u00e9s de la aplicaci\u00f3n <a href=\"https:\/\/docs.atlas.mongodb.com\/reference\/atlas-search\/query-syntax\/\">1TP4Buscarbeta<\/a> funci\u00f3n. Couchbase tiene un <a href=\"https:\/\/www.couchbase.com\/blog\/es\/full-text-search-indexing-best-practices-by-use-case\/\">indexaci\u00f3n de b\u00fasqueda de texto completo<\/a> que puedes ejecutar en tu port\u00e1til y en el cl\u00faster.  De nuevo, tenemos un art\u00edculo detallado que compara el <a href=\"https:\/\/www.couchbase.com\/blog\/es\/searching-json-comparing-text-search-in-couchbase-and-mongodb\/\">b\u00fasqueda de texto caracter\u00edstica por caracter\u00edstica<\/a>con ejemplos.  Couchbase 6.5 integra <a href=\"https:\/\/docs.couchbase.com\/server\/current\/n1ql\/n1ql-language-reference\/searchfun.html\">el FTS con N1QL<\/a>, haciendo que la consulta vaya a\u00fan m\u00e1s lejos.<\/p>\n<h4><span style=\"color: #0000ff\"><strong>OPTIMIZADOR<\/strong><\/span><\/h4>\n<p>Un optimizador de consultas intenta reescribir la consulta para optimizarla mejor, elegir el \u00edndice m\u00e1s apropiado, decidir el pushdown del \u00edndice, el orden de uni\u00f3n, el tipo de uni\u00f3n y crea un plan que el motor puede ejecutar. Cada base de datos tiene un optimizador especializado que entiende las capacidades y peculiaridades del motor.<\/p>\n<table>\n<tbody>\n<tr>\n<td><b>Caracter\u00edstica<\/b><\/td>\n<td><b>MongoDB<\/b><\/td>\n<td><b>Couchbase\u00a0<\/b><\/td>\n<\/tr>\n<tr>\n<td><b>Tipo de optimizador<\/b><\/td>\n<td><a href=\"https:\/\/docs.mongodb.com\/manual\/core\/query-plans\/\"><b>Consulta basada en la forma <\/b><\/a><\/td>\n<td><a href=\"https:\/\/dzone.com\/articles\/a-deep-dive-into-couchbase-n1ql-query-optimization\"><b>Basado en reglas<\/b><\/a><\/p>\n<p><a href=\"https:\/\/docs.couchbase.com\/server\/6.5\/n1ql\/n1ql-language-reference\/cost-based-optimizer.html\"><b>Basado en los costes (Vista previa en 6.5)<\/b><\/a><\/td>\n<\/tr>\n<tr>\n<td><b>Selecci\u00f3n del \u00edndice<\/b><\/td>\n<td><a href=\"https:\/\/docs.mongodb.com\/manual\/core\/query-plans\/\"><b>Consulta basada en la forma <\/b><\/a><\/td>\n<td><b>Basado en reglas<\/b><\/p>\n<p><b>Basado en los costes (vista previa en 6.5)<\/b><\/td>\n<\/tr>\n<tr>\n<td><b>Reescritura de consultas<\/b><\/td>\n<td><b>No<\/b><\/td>\n<td><b>S\u00ed, limitado.<\/b><\/td>\n<\/tr>\n<tr>\n<td><b>JOIN Orden<\/b><\/td>\n<td><b>Tal y como est\u00e1 escrito, procedimental utilizando el marco de agregaci\u00f3n<\/b><\/td>\n<td><b>Especificado por el usuario (de izquierda a derecha)<\/b><\/td>\n<\/tr>\n<tr>\n<td><b>Tipo de uni\u00f3n<\/b><\/td>\n<td><b>Bucle anidado<\/b><\/td>\n<td><b>Bucle anidado<\/b><\/p>\n<p><b>Uni\u00f3n Hash<\/b><\/td>\n<\/tr>\n<tr>\n<td><b>CONSEJOS<\/b><\/td>\n<td><b>S\u00ed. $hint<\/b><\/td>\n<td><b>S\u00ed. <\/b><\/p>\n<p><b>USAR \u00cdNDICE, USAR HASH<\/b><\/td>\n<\/tr>\n<tr>\n<td><b>EXPLICAR<\/b><\/td>\n<td><b>1TP4Explicar<\/b><\/td>\n<td><b>EXPLICAR<\/b><\/td>\n<\/tr>\n<tr>\n<td><b>Explicaci\u00f3n visual<\/b><\/td>\n<td><b>S\u00ed<\/b><\/td>\n<td><b>S\u00ed.<\/b><\/td>\n<\/tr>\n<tr>\n<td><b>Perfiles de consulta<\/b><\/td>\n<td><b>S\u00ed<\/b><\/td>\n<td><b>s\u00ed<\/b><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h4><span style=\"color: #0000ff\"><strong>TRANSACCIONES<\/strong><\/span><\/h4>\n<p>Las bases de datos NoSQL se inventaron para evitar el SQL y las transacciones. Con el tiempo, cada base de datos est\u00e1 a\u00f1adiendo uno u otro, \u00a1o ambos!  MongoDB ha a\u00f1adido <a href=\"https:\/\/docs.mongodb.com\/manual\/core\/transactions\/\">transacciones multidocumento<\/a> con aislamiento de instant\u00e1neas. Couchbase ha a\u00f1adido <a href=\"https:\/\/docs.couchbase.com\/java-sdk\/3.0\/howtos\/distributed-acid-transactions-from-the-sdk.html\">transacciones multidocumento<\/a> con aislamiento de lectura comprometida. Las transacciones multidocumento siguen sin ser compatibles con N1QL.<\/p>\n<table>\n<tbody>\n<tr>\n<td><b>Caracter\u00edstica<\/b><\/td>\n<td><b>MongoDB<\/b><\/td>\n<td><b>Couchbase\u00a0<\/b><\/td>\n<\/tr>\n<tr>\n<td><b>Actualizaciones del \u00edndice<\/b><\/td>\n<td><b>Los \u00edndices se actualizan de forma sincr\u00f3nica<\/b><\/td>\n<td><b>Los \u00edndices se actualizan de forma as\u00edncrona<\/b><\/td>\n<\/tr>\n<tr>\n<td><b>Atomicidad<\/b><\/td>\n<td><b>Documento \u00fanico<\/b><\/p>\n<p><b>Multidocumento (en 4.2)<\/b><\/td>\n<td><b>Documento \u00fanico<\/b><\/p>\n<p><b>Multidocumento (en 6.5)<\/b><\/td>\n<\/tr>\n<tr>\n<td><b>Coherencia<\/b><\/td>\n<td><strong>Los datos y los \u00edndices se actualizan de forma sincr\u00f3nica. Por defecto, lectura sucia en Datos e \u00edndices.\u00a0<\/strong><\/td>\n<td><b>El acceso a los datos es siempre coherente<\/b><\/p>\n<p><b>Los \u00edndices tienen varios niveles de coherencia (UNBOUNDED, AT_PLUS, REQUEST_PLUS)<\/b><\/td>\n<\/tr>\n<tr>\n<td><b>Aislamiento<\/b><\/td>\n<td><b>Por defecto: Lectura sucia<\/b><\/p>\n<p><b>Transacci\u00f3n: Aislamiento de instant\u00e1neas<\/b><\/td>\n<td><b>Bloqueo optimista con comprobaci\u00f3n CAS<\/b><\/p>\n<p><b>Transacciones: Aislamiento at\u00f3mico monot\u00f3nico<\/b><\/td>\n<\/tr>\n<tr>\n<td><b>Durabilidad<\/b><\/td>\n<td><b>Duradero con opci\u00f3n mayoritaria de escritura.<\/b><\/td>\n<td><b>Durable con confirmaci\u00f3n tras la replicaci\u00f3n<\/b><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h4><span style=\"color: #0000ff\"><strong>AN\u00c1LISIS<\/strong><\/span><\/h4>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/es\/products\/analytics\/\">An\u00e1lisis de Couchbase<\/a> est\u00e1 dise\u00f1ado para ofrecerle informaci\u00f3n sobre sus datos JSON sin ETL: NoETL para NoSQL. Los datos JSON en el almac\u00e9n de datos clave-valor se copian en el servicio de an\u00e1lisis que distribuye los datos en su almacenamiento.  El servicio de consulta Couchbase, servicio de datos est\u00e1 dise\u00f1ado para manejar un gran n\u00famero de operaciones concurrentes o consultas para ejecutar las aplicaciones. El servicio de an\u00e1lisis est\u00e1 dise\u00f1ado para analizar un gran n\u00famero de documentos con el fin de obtener informaci\u00f3n sobre el negocio. En t\u00e9rminos tradicionales, el servicio de an\u00e1lisis est\u00e1 dise\u00f1ado para OLAP y el resto para OLTP.  MongoDB no tiene un servicio de an\u00e1lisis equivalente.  Tendr\u00edas que sobrecargar tu cluster existente con cargas de trabajo tanto OLTP como OLAP.  Como aprender\u00e1s, no hay almuerzo gratis.  Los grandes escaneos necesarios para la carga de trabajo anal\u00edtica afectar\u00e1n a las latencias de sus consultas OLTP. A continuaci\u00f3n, empiece a asignar nuevos nodos para sus copias secundarias y terciarias de los datos en los que puede realizar la carga de trabajo de lectura.  \u00bfQu\u00e9 ocurrir\u00e1 o deber\u00eda ocurrir en caso de conmutaci\u00f3n por error?  El secundario toma el relevo, pero de nuevo afecta a tu carga de trabajo OLTP.<\/p>\n<p>Hay una segunda raz\u00f3n para tener un servicio distinto: el procesamiento de consultas para anal\u00edtica requiere un enfoque diferente al de las consultas OLTP.  Hay un gran conjunto de recursos para que usted aprenda acerca de este servicio, incluyendo el libro de Don Chamberlin, co-inventor de SQL.<\/p>\n<ol>\n<li>SQL++ para USUARIOS de SQL: UN TUTORIAL:\u00a0 <a href=\"https:\/\/resources.couchbase.com\/analytics\/sql-book\">https:\/\/resources.couchbase.com\/analytics\/sql-book<\/a><\/li>\n<li>Couchbase Analytics: Under the Hood - Connect Silicon Valley 2018: <a href=\"https:\/\/www.youtube.com\/watch?v=1dN11TUj58c\">https:\/\/www.youtube.com\/watch?v=1dN11TUj58c<\/a><\/li>\n<li>De SQL a NoSQL\n<ul>\n<li>M\u00e1s all\u00e1 de filas y columnas: A la cuarta va la vencida - Couchbase Connect 2016: <a href=\"https:\/\/www.youtube.com\/watch?v=HVJNxgLKtbo\">https:\/\/www.youtube.com\/watch?v=HVJNxgLKtbo<\/a><\/li>\n<\/ul>\n<\/li>\n<li>NoETL para NoSQL - An\u00e1lisis en tiempo real con Couchbase:\u00a0<a href=\"https:\/\/www.youtube.com\/watch?v=MIno71jTOUI\">https:\/\/www.youtube.com\/watch?v=MIno71jTOUI<\/a><\/li>\n<li><a href=\"https:\/\/www.couchbase.com\/blog\/es\/n1ql-to-query-or-to-analyze\/\">N1QL: \u00bfConsultar o analizar?<\/a><\/li>\n<li><a href=\"https:\/\/www.couchbase.com\/blog\/es\/part-2-n1ql-to-query-or-to-analyze\/\">Parte 2: N1QL: \u00bfConsultar o analizar?<\/a><\/li>\n<\/ol>\n<h4><span style=\"color: #0000ff\"><strong>Resumen: Part Deux<\/strong><\/span><\/h4>\n<p>Las bases de datos son extraordinariamente \u00fatiles.  Son matizables y tambi\u00e9n pegajosas.  Son esenciales para la civilizaci\u00f3n.  Los sumerios inventaron la escritura para procesar transacciones: crear una base de datos con tablillas de arcilla para llevar la cuenta de los impuestos, las tierras, el oro y averiguar informaci\u00f3n. Siempre habr\u00e1 bases de datos. Cada base de datos es diferente, ya sean bases de datos SQL o bases de datos NoSQL. No todas las bases de datos SQL son iguales. No todas las bases de datos NoSQL son iguales. Comprender las diferentes bases de datos aumenta la flexibilidad y la eficacia de su organizaci\u00f3n.<\/p>\n<h4><span style=\"color: #0000ff\"><strong>RECURSOS: Segunda parte<\/strong><\/span><\/h4>\n<ol>\n<li>SQL++ para USUARIOS de SQL: UN TUTORIAL:\u00a0 <a href=\"https:\/\/resources.couchbase.com\/analytics\/sql-book\">https:\/\/resources.couchbase.com\/analytics\/sql-book<\/a><\/li>\n<li>N1QL Gu\u00edas pr\u00e1cticas\n<ul>\n<li>Segunda edici\u00f3n: <a href=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/10\/N1QL-A-Practical-Guide-2nd-Edition.pdf\">https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/10\/N1QL-A-Practical-Guide-2nd-Edition.pdf<\/a><\/li>\n<li>5,5 caracter\u00edsticas: <a href=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2018\/04\/COU_261-Couchbase-5.5-N1QL-Booklet-WEB.pdf\">https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2018\/04\/COU_261-Couchbase-5.5-N1QL-Booklet-WEB.pdf<\/a><\/li>\n<\/ul>\n<\/li>\n<li>Blogs de Couchbase 6.5: <a href=\"https:\/\/www.couchbase.com\/blog\/es\/tag\/6.5\/\">https:\/\/www.couchbase.com\/blog\/tag\/6.5\/<\/a><\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>","protected":false},"excerpt":{"rendered":"<p>Six thousand years ago, the Sumerians invented writing for transaction processing &#8212; Gray &amp; Reuter By any measure, MongoDB is a popular document-oriented JSON database. In the last dozen years, it has grown from its humble beginnings of a single [&hellip;]<\/p>","protected":false},"author":55,"featured_media":10440,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1815,2294,1821,1816,2165,1812],"tags":[1261,1309,1725,2221],"ppma_author":[8929],"class_list":["post-8478","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-best-practices-and-tutorials","category-analytics","category-couchbase-architecture","category-couchbase-server","category-full-text-search","category-n1ql-query","tag-json","tag-mongodb","tag-nosql-database","tag-transactions"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.1 (Yoast SEO v26.1.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Couchbase Intro for MongoDB Developers and NoSQL Experts - The Couchbase Blog<\/title>\n<meta name=\"description\" content=\"Many start with MongoDB to learn NoSQL and flexible JSON schema, many choose Couchbase for performance, scale, and SQL. Learn the differences in this post.\" \/>\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\/introduction-to-couchbase-for-mongodb-developers-and-experts\/\" \/>\n<meta property=\"og:locale\" content=\"es_MX\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Couchbase Intro for MongoDB Developers and NoSQL Experts\" \/>\n<meta property=\"og:description\" content=\"Many start with MongoDB to learn NoSQL and flexible JSON schema, many choose Couchbase for performance, scale, and SQL. Learn the differences in this post.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/es\/introduction-to-couchbase-for-mongodb-developers-and-experts\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2020-04-25T19:51:59+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T06:42:43+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/monarch2-2.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"800\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Keshav Murthy\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@rkeshavmurthy\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Keshav Murthy\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"17 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/introduction-to-couchbase-for-mongodb-developers-and-experts\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/introduction-to-couchbase-for-mongodb-developers-and-experts\/\"},\"author\":{\"name\":\"Keshav Murthy\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/c261644262bf98e146372fe647682636\"},\"headline\":\"Couchbase Intro for MongoDB Developers and NoSQL Experts\",\"datePublished\":\"2020-04-25T19:51:59+00:00\",\"dateModified\":\"2025-06-14T06:42:43+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/introduction-to-couchbase-for-mongodb-developers-and-experts\/\"},\"wordCount\":3558,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/introduction-to-couchbase-for-mongodb-developers-and-experts\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/monarch2-2.jpg\",\"keywords\":[\"JSON\",\"mongodb\",\"NoSQL Database\",\"transactions\"],\"articleSection\":[\"Best Practices and Tutorials\",\"Couchbase Analytics\",\"Couchbase Architecture\",\"Couchbase Server\",\"Full-Text Search\",\"SQL++ \/ N1QL Query\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/introduction-to-couchbase-for-mongodb-developers-and-experts\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/introduction-to-couchbase-for-mongodb-developers-and-experts\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/introduction-to-couchbase-for-mongodb-developers-and-experts\/\",\"name\":\"Couchbase Intro for MongoDB Developers and NoSQL Experts - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/introduction-to-couchbase-for-mongodb-developers-and-experts\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/introduction-to-couchbase-for-mongodb-developers-and-experts\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/monarch2-2.jpg\",\"datePublished\":\"2020-04-25T19:51:59+00:00\",\"dateModified\":\"2025-06-14T06:42:43+00:00\",\"description\":\"Many start with MongoDB to learn NoSQL and flexible JSON schema, many choose Couchbase for performance, scale, and SQL. Learn the differences in this post.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/introduction-to-couchbase-for-mongodb-developers-and-experts\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/introduction-to-couchbase-for-mongodb-developers-and-experts\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/introduction-to-couchbase-for-mongodb-developers-and-experts\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/monarch2-2.jpg\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/monarch2-2.jpg\",\"width\":1200,\"height\":800},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/introduction-to-couchbase-for-mongodb-developers-and-experts\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Couchbase Intro for MongoDB Developers and NoSQL Experts\"}]},{\"@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\/c261644262bf98e146372fe647682636\",\"name\":\"Keshav Murthy\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/4e51d72fc07c662aa791316deafffac4\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/af74df754db27152971d0aed2f323ead5a1f9fe5afd0209af91e12e784451224?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/af74df754db27152971d0aed2f323ead5a1f9fe5afd0209af91e12e784451224?s=96&d=mm&r=g\",\"caption\":\"Keshav Murthy\"},\"description\":\"Keshav Murthy is a Vice President at Couchbase R&amp;D. Previously, he was at MapR, IBM, Informix, Sybase, with more than 20 years of experience in database design &amp; development. He lead the SQL and NoSQL R&amp;D team at IBM Informix. He has received two President's Club awards at Couchbase, two Outstanding Technical Achievement Awards at IBM. Keshav has a bachelor's degree in Computer Science and Engineering from the University of Mysore, India, holds eleven US patents and has four US patents pending.\",\"sameAs\":[\"https:\/\/blog.planetnosql.com\/\",\"https:\/\/x.com\/rkeshavmurthy\"],\"url\":\"https:\/\/www.couchbase.com\/blog\/es\/author\/keshav-murthy\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Couchbase Intro for MongoDB Developers and NoSQL Experts - The Couchbase Blog","description":"Muchos empiezan con MongoDB para aprender NoSQL y esquema JSON flexible, muchos eligen Couchbase para rendimiento, escala y SQL. Conoce las diferencias en este post.","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\/introduction-to-couchbase-for-mongodb-developers-and-experts\/","og_locale":"es_MX","og_type":"article","og_title":"Couchbase Intro for MongoDB Developers and NoSQL Experts","og_description":"Many start with MongoDB to learn NoSQL and flexible JSON schema, many choose Couchbase for performance, scale, and SQL. Learn the differences in this post.","og_url":"https:\/\/www.couchbase.com\/blog\/es\/introduction-to-couchbase-for-mongodb-developers-and-experts\/","og_site_name":"The Couchbase Blog","article_published_time":"2020-04-25T19:51:59+00:00","article_modified_time":"2025-06-14T06:42:43+00:00","og_image":[{"width":1200,"height":800,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/monarch2-2.jpg","type":"image\/jpeg"}],"author":"Keshav Murthy","twitter_card":"summary_large_image","twitter_creator":"@rkeshavmurthy","twitter_misc":{"Written by":"Keshav Murthy","Est. reading time":"17 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/introduction-to-couchbase-for-mongodb-developers-and-experts\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/introduction-to-couchbase-for-mongodb-developers-and-experts\/"},"author":{"name":"Keshav Murthy","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/c261644262bf98e146372fe647682636"},"headline":"Couchbase Intro for MongoDB Developers and NoSQL Experts","datePublished":"2020-04-25T19:51:59+00:00","dateModified":"2025-06-14T06:42:43+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/introduction-to-couchbase-for-mongodb-developers-and-experts\/"},"wordCount":3558,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/introduction-to-couchbase-for-mongodb-developers-and-experts\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/monarch2-2.jpg","keywords":["JSON","mongodb","NoSQL Database","transactions"],"articleSection":["Best Practices and Tutorials","Couchbase Analytics","Couchbase Architecture","Couchbase Server","Full-Text Search","SQL++ \/ N1QL Query"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/introduction-to-couchbase-for-mongodb-developers-and-experts\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/introduction-to-couchbase-for-mongodb-developers-and-experts\/","url":"https:\/\/www.couchbase.com\/blog\/introduction-to-couchbase-for-mongodb-developers-and-experts\/","name":"Couchbase Intro for MongoDB Developers and NoSQL Experts - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/introduction-to-couchbase-for-mongodb-developers-and-experts\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/introduction-to-couchbase-for-mongodb-developers-and-experts\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/monarch2-2.jpg","datePublished":"2020-04-25T19:51:59+00:00","dateModified":"2025-06-14T06:42:43+00:00","description":"Muchos empiezan con MongoDB para aprender NoSQL y esquema JSON flexible, muchos eligen Couchbase para rendimiento, escala y SQL. Conoce las diferencias en este post.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/introduction-to-couchbase-for-mongodb-developers-and-experts\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/introduction-to-couchbase-for-mongodb-developers-and-experts\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/introduction-to-couchbase-for-mongodb-developers-and-experts\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/monarch2-2.jpg","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/04\/monarch2-2.jpg","width":1200,"height":800},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/introduction-to-couchbase-for-mongodb-developers-and-experts\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Couchbase Intro for MongoDB Developers and NoSQL Experts"}]},{"@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\/c261644262bf98e146372fe647682636","name":"Keshav Murthy","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/4e51d72fc07c662aa791316deafffac4","url":"https:\/\/secure.gravatar.com\/avatar\/af74df754db27152971d0aed2f323ead5a1f9fe5afd0209af91e12e784451224?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/af74df754db27152971d0aed2f323ead5a1f9fe5afd0209af91e12e784451224?s=96&d=mm&r=g","caption":"Keshav Murthy"},"description":"Keshav Murthy es Vicepresidente de Couchbase R&amp;D. Anteriormente, estuvo en MapR, IBM, Informix, Sybase, con m\u00e1s de 20 a\u00f1os de experiencia en dise\u00f1o y desarrollo de bases de datos. Dirigi\u00f3 el equipo de I+D de SQL y NoSQL en IBM Informix. Ha recibido dos premios President's Club en Couchbase y dos premios Outstanding Technical Achievement en IBM. Keshav es licenciado en Inform\u00e1tica e Ingenier\u00eda por la Universidad de Mysore (India), es titular de once patentes estadounidenses y tiene cuatro pendientes.","sameAs":["https:\/\/blog.planetnosql.com\/","https:\/\/x.com\/rkeshavmurthy"],"url":"https:\/\/www.couchbase.com\/blog\/es\/author\/keshav-murthy\/"}]}},"authors":[{"term_id":8929,"user_id":55,"is_guest":0,"slug":"keshav-murthy","display_name":"Keshav Murthy","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/af74df754db27152971d0aed2f323ead5a1f9fe5afd0209af91e12e784451224?s=96&d=mm&r=g","author_category":"","last_name":"Murthy","first_name":"Keshav","job_title":"","user_url":"https:\/\/blog.planetnosql.com\/","description":"Keshav Murthy es Vicepresidente de Couchbase R&amp;D. Anteriormente, estuvo en MapR, IBM, Informix, Sybase, con m\u00e1s de 20 a\u00f1os de experiencia en dise\u00f1o y desarrollo de bases de datos. Dirigi\u00f3 el equipo de I+D de SQL y NoSQL en IBM Informix. Ha recibido dos premios President's Club en Couchbase y dos premios Outstanding Technical Achievement en IBM. Keshav es licenciado en Inform\u00e1tica e Ingenier\u00eda por la Universidad de Mysore (India), es titular de diez patentes estadounidenses y tiene tres pendientes."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/8478","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\/55"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/comments?post=8478"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/8478\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media\/10440"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media?parent=8478"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/categories?post=8478"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/tags?post=8478"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/ppma_author?post=8478"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}