{"id":2278,"date":"2016-05-31T16:29:06","date_gmt":"2016-05-31T16:29:06","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=2278"},"modified":"2025-10-09T06:45:09","modified_gmt":"2025-10-09T13:45:09","slug":"announcing-php-sdk-2-2-0beta3-subdocument-and-index-management","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/es\/announcing-php-sdk-2-2-0beta3-subdocument-and-index-management\/","title":{"rendered":"PHP SDK 2.2.0 Beta3: Ejemplos con gesti\u00f3n de sub-documentos e \u00edndices"},"content":{"rendered":"<p>Para apoyar el pr\u00f3ximo lanzamiento de Couchbase Server 4.5 y algunas innovaciones en la comunidad PHP con PHP 7, estamos mejorando nuestro PHP SDK. Hoy me gustar\u00eda anunciar la tercera Beta, que trae un par de nuevas funcionalidades junto con correcciones y mejoras internas. En esta entrada de blog demostraremos algunas de ellas.<\/p>\n<h2>API de subdocumentos<\/h2>\n<p>Nosotros ya <a href=\"\/blog\/es\/couchbase-server-45s-new-sub-document\/\">escribi\u00f3 anteriormente sobre esta API<\/a>pero esta vez vamos a mostrar algo de PHP. Asumimos que has instalado Couchbase 4.5 beta como m\u00ednimo y has configurado el bucket de ejemplo mejorado <code>viaje-muestra<\/code>. Primero vamos a hacer un poco de c\u00f3digo de servicio, donde instanciamos una conexi\u00f3n a bucket, y tambi\u00e9n definimos una funci\u00f3n de utilidad para informar sobre un hotel al azar.<\/p>\n<pre><code class=\"php\">$cluster = new CouchbaseCluster('couchbase:\/\/localhost');\r\n$bucket = $cluster-&gt;openBucket('travel-sample');\r\n\r\nfunction report($name, $publicLikes, $firstServiceRating)\r\n{\r\n    printf(\"Hotel \"%s\" has %d public likes. First rating for Service is %dn\",\r\n           $name, count($publicLikes), $firstServiceRating);\r\n}\r\n<\/code><\/pre>\n<p>Bien, ya estamos listos. La API de subdocumentos permite ahorrar tr\u00e1fico de red al trabajar con documentos de gran tama\u00f1o mediante un control detallado; por ejemplo, podemos extraer algunas de las propiedades del archivo <code>hotel_10025<\/code>:<\/p>\n<pre><code class=\"php\">$res = $bucket-&gt;lookupIn('hotel_10025')\r\n              -&gt;get('name')\r\n              -&gt;get('public_likes')\r\n              -&gt;get('reviews[0].ratings.Service')\r\n              -&gt;execute();\r\nreport($res-&gt;value[0]['value'], $res-&gt;value[1]['value'], $res-&gt;value[2]['value']);\r\n\/\/ =&gt; Hotel \"Medway Youth Hostel\" has 8 public likes. First rating for Service is 5\r\n<\/code><\/pre>\n<p>Aqu\u00ed y los m\u00e9todos de acceso posteriores aceptan la ruta como primer argumento.  Esto es similar a la ruta N1QL <a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/current\/n1ql\/n1ql-intro\/queriesandresults.html\">como se describe en la documentaci\u00f3n<\/a>. Si obtiene este documento utilizando la API normal, ver\u00e1 que no es el m\u00e1s peque\u00f1o y que contiene mucha informaci\u00f3n sobre el lugar, y con <code>buscarEn<\/code> s\u00f3lo transfieres los datos que te interesan. Esto es m\u00e1s importante cuando quieres modificar peque\u00f1as partes de un documento enorme. Por ejemplo, a\u00f1adamos una persona m\u00e1s a <code>me gusta_p\u00fablico<\/code>, ajuste el nombre del hotel y elimine una de las valoraciones.<\/p>\n<pre><code class=\"php\">$bucket-&gt;mutateIn('hotel_10025')\r\n       -&gt;replace('name', 'Medway Adult Hostel')\r\n       -&gt;arrayAppend('public_likes', 'John Doe')\r\n       -&gt;remove('reviews[0]')\r\n       -&gt;execute();\r\n<\/code><\/pre>\n<p>El c\u00f3digo se explica por s\u00ed mismo. Si desea utilizar <a href=\"https:\/\/www.couchbase.com\/blog\/es\/optimistic-or-pessimistic-locking-which-one-should-you-pick\/\">bloqueo optimista<\/a>basta con pasar el valor CAS como segundo argumento a <code>mutateIn<\/code>. La lista completa de operadores de mutaci\u00f3n se encuentra en la referencia API <a href=\"https:\/\/docs.couchbase.com\/sdk-api\/couchbase-php-client-2.2.0beta3\/classes\/CouchbaseMutateInBuilder.html\">https:\/\/docs.couchbase.com\/sdk-api\/couchbase-php-client-2.2.0beta3\/classes\/CouchbaseMutateInBuilder.html<\/a>. Vamos a mostrar lo que tenemos despu\u00e9s del cambio, pero esta vez vamos a utilizar el acceso directo para <code>buscarEn<\/code> con m\u00faltiples <code>consiga<\/code> operadores:<\/p>\n<pre><code class=\"php\">$res = $bucket-&gt;retrieveIn('hotel_10025',\r\n                           'name', 'public_likes', 'reviews[0].ratings.Service');\r\nreport($res-&gt;value[0]['value'], $res-&gt;value[1]['value'], $res-&gt;value[2]['value']);\r\n\/\/ =&gt; Hotel \"Medway Youth Hostel\" has 9 public likes. First rating for Service is 3\r\n<\/code><\/pre>\n<h2>Gesti\u00f3n de \u00edndices<\/h2>\n<p>Anteriormente, para listar, crear o eliminar \u00edndices, era necesario elaborar manualmente la sentencia N1QL. En el pr\u00f3ximo SDK de PHP 2.2 habr\u00e1 una nueva API que simplificar\u00e1 esta tarea mediante la exposici\u00f3n de pr\u00e1cticas funciones en <code>Gestor de cubos<\/code>como en Couchbase Views. Veamos qu\u00e9 \u00edndices est\u00e1n definidos en el archivo <code>viaje-muestra<\/code> por defecto:<\/p>\n<pre><code class=\"php\">$manager = $bucket-&gt;manager();\r\n\r\n$res = $manager()-&gt;listN1qlIndexes();\r\nforeach ($res as $index) {\r\n    printf(\"Index %s.%s\", $index-&gt;keyspace, $index-&gt;name);\r\n    if ($index-&gt;condition) {\r\n        printf(\"ntwith condition: %s\", $index-&gt;condition);\r\n    }\r\n    if (count($index-&gt;fields) &gt; 0) {\r\n        printf(\"nton fields: %s\", join(', ', $index-&gt;fields));\r\n    }\r\n    printf(\"n\");\r\n}\r\n<\/code><\/pre>\n<p>Deber\u00eda salir algo como esto:<\/p>\n<pre><code>Index travel-sample.def_primary\r\nIndex travel-sample.def_airportname\r\n    on fields: `airportname`\r\nIndex travel-sample.def_city\r\n    on fields: `city`\r\nIndex travel-sample.def_faa\r\n    on fields: `faa`\r\nIndex travel-sample.def_icao\r\n    on fields: `icao`\r\nIndex travel-sample.def_name_type\r\n    with condition: (`_type` = \"User\")\r\n    on fields: `name`\r\nIndex travel-sample.def_route_src_dst_day\r\n    with condition: (`type` = \"route\")\r\n    on fields: `sourceairport`, `destinationairport`, (distinct (array (`v`.`day`) for `v` in `schedule` end))\r\nIndex travel-sample.def_schedule_utc\r\n    on fields: array (`s`.`utc`) for `s` in `schedule` end\r\nIndex travel-sample.def_sourceairport\r\n    on fields: `sourceairport`\r\nIndex travel-sample.def_type\r\n    on fields: `type`\r\n<\/code><\/pre>\n<p>El siguiente ejemplo demuestra la creaci\u00f3n de \u00edndices sobre nombre:<\/p>\n<pre><code class=\"php\">$manager-&gt;createN1qlPrimaryIndex();\r\n$manager-&gt;createN1qlIndex('ex_name', array('name'));\r\n$manager-&gt;createN1qlIndex('ex_srcdst, array('sourceairport','destinationairport'), '`type` = \"route\"`);\r\n<\/code><\/pre>\n<p>Eliminar \u00edndices no es un poco m\u00e1s dif\u00edcil:<\/p>\n<pre><code class=\"php\">$manager-&gt;dropN1qlPrimaryIndex();\r\n$manager-&gt;dropN1qlIndex('ex_name');\r\n<\/code><\/pre>\n<p>Antes de terminar, me gustar\u00eda mostrar un peque\u00f1o pero en algunos casos importante cambio que hemos conseguido en la versi\u00f3n beta3. El valor CAS siempre ha sido opaco en el protocolo de Couchbase, as\u00ed como en los SDKs, pero en PHP estaba incluso oculto para los desarrolladores de aplicaciones detr\u00e1s de la referencia de recursos PHP, lo que significa que es dif\u00edcil pasarlo f\u00e1cilmente (por ejemplo, para renderizar en una p\u00e1gina HTML). En esta versi\u00f3n codificamos el CAS como un token de cadena, por lo que sigue siendo opaco, pero mucho m\u00e1s f\u00e1cil de serializar.<\/p>\n<pre><code class=\"php\">$res = $bucket-&gt;get('airline_10');\r\nvar_dump($res);\r\n\/\/=&gt; object(CouchbaseMetaDoc)#5 (4) {\r\n\/\/     [\"error\"]=&gt;\r\n\/\/     NULL\r\n\/\/     [\"value\"]=&gt;\r\n\/\/     object(stdClass)#4 (7) {\r\n\/\/       [\"id\"]=&gt;\r\n\/\/       int(10)\r\n\/\/       [\"type\"]=&gt;\r\n\/\/       string(7) \"airline\"\r\n\/\/       [\"name\"]=&gt;\r\n\/\/       string(11) \"40-Mile Air\"\r\n\/\/       [\"iata\"]=&gt;\r\n\/\/       string(2) \"Q5\"\r\n\/\/       [\"icao\"]=&gt;\r\n\/\/       string(3) \"MLA\"\r\n\/\/       [\"callsign\"]=&gt;\r\n\/\/       string(8) \"MILE-AIR\"\r\n\/\/       [\"country\"]=&gt;\r\n\/\/       string(13) \"United States\"\r\n\/\/     }\r\n\/\/     [\"flags\"]=&gt;\r\n\/\/     int(33554438)\r\n\/\/     [\"cas\"]=&gt;\r\n\/\/     string(11) \"jq25pb4ckd0\"\r\n\/\/   }\r\n<\/code><\/pre>\n<p>Si no est\u00e1 familiarizado con lo que es el CAS, puede aprenderlo con un ejemplo aqu\u00ed: <a href=\"https:\/\/github.com\/couchbase\/php-couchbase\/blob\/master\/examples\/cas\/cas_replace.php\">https:\/\/github.com\/couchbase\/php-couchbase\/blob\/master\/examples\/cas\/cas_replace.php<\/a><\/p>\n<p>Y por \u00faltimo, para instalar esta versi\u00f3n, utilice el siguiente comando (aseg\u00farese de tener libcouchbase 2.6.0+ instalado):<\/p>\n<pre><code class=\"bash\">pecl install couchbase-2.2.0beta3\r\n<\/code><\/pre>\n<p>Esto es todo por ahora. Planeamos una versi\u00f3n Beta m\u00e1s antes de GA con a\u00fan m\u00e1s caracter\u00edsticas. Si encuentras alg\u00fan problema, por favor env\u00edalo directamente al sitio de Comunidades Couchbase en <a href=\"https:\/\/www.couchbase.com\/blog\/es\/community\/\">https:\/\/www.couchbase.com\/community\/<\/a>. Adem\u00e1s, los errores pueden notificarse directamente a trav\u00e9s de nuestro gestor de incidencias disponible aqu\u00ed: <a href=\"https:\/\/www.couchbase.com\/blog\/es\/issues\/browse\/PCBC\/\">https:\/\/www.couchbase.com\/issues\/browse\/PCBC\/<\/a><\/p>\n<p>Permanezca atento.<\/p>","protected":false},"excerpt":{"rendered":"<p>In support of the upcoming Couchbase Server 4.5 release and some innovation in the PHP community with PHP 7, we are enhancing\u00a0our PHP SDK. Today I&#8217;d like to announce the third Beta, which brings a couple of new fetures along [&hellip;]<\/p>","protected":false},"author":25,"featured_media":13873,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1816,9381,9408],"tags":[1696],"ppma_author":[8995],"class_list":["post-2278","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-couchbase-server","category-indexing","category-php","tag-indexing"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.4 (Yoast SEO v26.4) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>PHP SDK 2.2.0 Beta3 \u2013 Sub-Document and Index Management<\/title>\n<meta name=\"description\" content=\"Check out the enhanced PHP SDK 2.2.0 Beta third version which brings a couple of new features along with internal fixes and improvements.\" \/>\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\/announcing-php-sdk-2-2-0beta3-subdocument-and-index-management\/\" \/>\n<meta property=\"og:locale\" content=\"es_MX\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"PHP SDK 2.2.0 Beta3: Examples with Sub-Document and Index Management\" \/>\n<meta property=\"og:description\" content=\"Check out the enhanced PHP SDK 2.2.0 Beta third version which brings a couple of new features along with internal fixes and improvements.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/es\/announcing-php-sdk-2-2-0beta3-subdocument-and-index-management\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2016-05-31T16:29:06+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-10-09T13:45:09+00:00\" \/>\n<meta name=\"author\" content=\"Sergey Avseyev, SDK Engineer, Couchbase\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@avsej\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Sergey Avseyev, SDK Engineer, Couchbase\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/announcing-php-sdk-2-2-0beta3-subdocument-and-index-management\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/announcing-php-sdk-2-2-0beta3-subdocument-and-index-management\/\"},\"author\":{\"name\":\"Sergey Avseyev, SDK Engineer, Couchbase\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/e9181374f225c90084ec3ba86bdcfa2e\"},\"headline\":\"PHP SDK 2.2.0 Beta3: Examples with Sub-Document and Index Management\",\"datePublished\":\"2016-05-31T16:29:06+00:00\",\"dateModified\":\"2025-10-09T13:45:09+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/announcing-php-sdk-2-2-0beta3-subdocument-and-index-management\/\"},\"wordCount\":585,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/announcing-php-sdk-2-2-0beta3-subdocument-and-index-management\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"keywords\":[\"Indexing\"],\"articleSection\":[\"Couchbase Server\",\"Indexing\",\"PHP\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/announcing-php-sdk-2-2-0beta3-subdocument-and-index-management\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/announcing-php-sdk-2-2-0beta3-subdocument-and-index-management\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/announcing-php-sdk-2-2-0beta3-subdocument-and-index-management\/\",\"name\":\"PHP SDK 2.2.0 Beta3 \u2013 Sub-Document and Index Management\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/announcing-php-sdk-2-2-0beta3-subdocument-and-index-management\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/announcing-php-sdk-2-2-0beta3-subdocument-and-index-management\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2016-05-31T16:29:06+00:00\",\"dateModified\":\"2025-10-09T13:45:09+00:00\",\"description\":\"Check out the enhanced PHP SDK 2.2.0 Beta third version which brings a couple of new features along with internal fixes and improvements.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/announcing-php-sdk-2-2-0beta3-subdocument-and-index-management\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/announcing-php-sdk-2-2-0beta3-subdocument-and-index-management\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/announcing-php-sdk-2-2-0beta3-subdocument-and-index-management\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"width\":1800,\"height\":630},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/announcing-php-sdk-2-2-0beta3-subdocument-and-index-management\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"PHP SDK 2.2.0 Beta3: Examples with Sub-Document and Index Management\"}]},{\"@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\/e9181374f225c90084ec3ba86bdcfa2e\",\"name\":\"Sergey Avseyev, SDK Engineer, Couchbase\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/796ab283bd56fe3716a102ebe16daff6\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/288a892d231cf8c4e57ed0643e4681b4654a141361f6ec3c5b79ccd4d885e038?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/288a892d231cf8c4e57ed0643e4681b4654a141361f6ec3c5b79ccd4d885e038?s=96&d=mm&r=g\",\"caption\":\"Sergey Avseyev, SDK Engineer, Couchbase\"},\"description\":\"Sergey Avseyev is a SDK Engineer at Couchbase. Sergey Avseyev is responsible for development of Kafka connector, and underlying library, which implements DCP, Couchbase replication protocol. Also maintaining PHP SDK for Couchbase.\",\"sameAs\":[\"https:\/\/x.com\/avsej\"],\"url\":\"https:\/\/www.couchbase.com\/blog\/es\/author\/sergey-avseyev\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"PHP SDK 2.2.0 Beta3 \u2013 Sub-Document and Index Management","description":"Echa un vistazo a la tercera versi\u00f3n mejorada de PHP SDK 2.2.0 Beta que trae un par de nuevas caracter\u00edsticas junto con correcciones y mejoras internas.","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\/announcing-php-sdk-2-2-0beta3-subdocument-and-index-management\/","og_locale":"es_MX","og_type":"article","og_title":"PHP SDK 2.2.0 Beta3: Examples with Sub-Document and Index Management","og_description":"Check out the enhanced PHP SDK 2.2.0 Beta third version which brings a couple of new features along with internal fixes and improvements.","og_url":"https:\/\/www.couchbase.com\/blog\/es\/announcing-php-sdk-2-2-0beta3-subdocument-and-index-management\/","og_site_name":"The Couchbase Blog","article_published_time":"2016-05-31T16:29:06+00:00","article_modified_time":"2025-10-09T13:45:09+00:00","author":"Sergey Avseyev, SDK Engineer, Couchbase","twitter_card":"summary_large_image","twitter_creator":"@avsej","twitter_misc":{"Written by":"Sergey Avseyev, SDK Engineer, Couchbase","Est. reading time":"3 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/announcing-php-sdk-2-2-0beta3-subdocument-and-index-management\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/announcing-php-sdk-2-2-0beta3-subdocument-and-index-management\/"},"author":{"name":"Sergey Avseyev, SDK Engineer, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/e9181374f225c90084ec3ba86bdcfa2e"},"headline":"PHP SDK 2.2.0 Beta3: Examples with Sub-Document and Index Management","datePublished":"2016-05-31T16:29:06+00:00","dateModified":"2025-10-09T13:45:09+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/announcing-php-sdk-2-2-0beta3-subdocument-and-index-management\/"},"wordCount":585,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/announcing-php-sdk-2-2-0beta3-subdocument-and-index-management\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","keywords":["Indexing"],"articleSection":["Couchbase Server","Indexing","PHP"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/announcing-php-sdk-2-2-0beta3-subdocument-and-index-management\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/announcing-php-sdk-2-2-0beta3-subdocument-and-index-management\/","url":"https:\/\/www.couchbase.com\/blog\/announcing-php-sdk-2-2-0beta3-subdocument-and-index-management\/","name":"PHP SDK 2.2.0 Beta3 \u2013 Sub-Document and Index Management","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/announcing-php-sdk-2-2-0beta3-subdocument-and-index-management\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/announcing-php-sdk-2-2-0beta3-subdocument-and-index-management\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2016-05-31T16:29:06+00:00","dateModified":"2025-10-09T13:45:09+00:00","description":"Echa un vistazo a la tercera versi\u00f3n mejorada de PHP SDK 2.2.0 Beta que trae un par de nuevas caracter\u00edsticas junto con correcciones y mejoras internas.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/announcing-php-sdk-2-2-0beta3-subdocument-and-index-management\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/announcing-php-sdk-2-2-0beta3-subdocument-and-index-management\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/announcing-php-sdk-2-2-0beta3-subdocument-and-index-management\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","width":1800,"height":630},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/announcing-php-sdk-2-2-0beta3-subdocument-and-index-management\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"PHP SDK 2.2.0 Beta3: Examples with Sub-Document and Index Management"}]},{"@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\/e9181374f225c90084ec3ba86bdcfa2e","name":"Sergey Avseyev, Ingeniero SDK, Couchbase","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/796ab283bd56fe3716a102ebe16daff6","url":"https:\/\/secure.gravatar.com\/avatar\/288a892d231cf8c4e57ed0643e4681b4654a141361f6ec3c5b79ccd4d885e038?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/288a892d231cf8c4e57ed0643e4681b4654a141361f6ec3c5b79ccd4d885e038?s=96&d=mm&r=g","caption":"Sergey Avseyev, SDK Engineer, Couchbase"},"description":"Sergey Avseyev es Ingeniero SDK en Couchbase. Sergey Avseyev es responsable del desarrollo del conector Kafka, y la biblioteca subyacente, que implementa DCP, el protocolo de replicaci\u00f3n de Couchbase. Tambi\u00e9n mantiene PHP SDK para Couchbase.","sameAs":["https:\/\/x.com\/avsej"],"url":"https:\/\/www.couchbase.com\/blog\/es\/author\/sergey-avseyev\/"}]}},"authors":[{"term_id":8995,"user_id":25,"is_guest":0,"slug":"sergey-avseyev","display_name":"Sergey Avseyev, SDK Engineer, Couchbase","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/288a892d231cf8c4e57ed0643e4681b4654a141361f6ec3c5b79ccd4d885e038?s=96&d=mm&r=g","author_category":"","last_name":"Avseyev, SDK Engineer, Couchbase","first_name":"Sergey","job_title":"","user_url":"","description":"Sergey Avseyev es Ingeniero SDK en Couchbase. Sergey Avseyev es responsable del desarrollo del conector Kafka, y la biblioteca subyacente, que implementa DCP, el protocolo de replicaci\u00f3n de Couchbase. Tambi\u00e9n mantiene PHP SDK para Couchbase."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/2278","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\/25"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/comments?post=2278"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/2278\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media\/13873"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media?parent=2278"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/categories?post=2278"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/tags?post=2278"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/ppma_author?post=2278"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}