{"id":2526,"date":"2017-02-09T10:46:35","date_gmt":"2017-02-09T10:46:35","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=2526"},"modified":"2025-06-13T18:46:25","modified_gmt":"2025-06-14T01:46:25","slug":"using-autonumber-in-couchbase","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/pt\/using-autonumber-in-couchbase\/","title":{"rendered":"Uso do Autonumber no Couchbase"},"content":{"rendered":"<p dir=\"ltr\" style=\"line-height: 1.7999999999999998;margin-top: 6pt;margin-bottom: 15pt\"><a style=\"text-decoration: none\" href=\"https:\/\/www.linkedin.com\/in\/ratnopam-chakrabarti\"><span style=\"font-size: 11pt;font-family: Arial;color: #1155cc;background-color: transparent;font-style: italic;text-decoration: underline;vertical-align: baseline\"><img loading=\"lazy\" decoding=\"async\" class=\"size-thumbnail wp-image-2542 alignright\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/02\/ratnopamchakrabarti2-150x150.jpeg\" alt=\"Ratnopam Chakrabarti\" width=\"150\" height=\"150\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/02\/ratnopamchakrabarti2-150x150.jpeg 150w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/02\/ratnopamchakrabarti2-65x65.jpeg 65w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/02\/ratnopamchakrabarti2-50x50.jpeg 50w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/>Ratnopam Chakrabarti<\/span><\/a><span style=\"font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-style: italic;vertical-align: baseline\"> \u00e9 um desenvolvedor de software que trabalha atualmente para a Ericsson Inc. Ele tem se concentrado em IoT, tecnologias m\u00e1quina a m\u00e1quina, carros conectados e dom\u00ednios de cidades inteligentes por um bom tempo. Ele adora aprender novas tecnologias e coloc\u00e1-las em pr\u00e1tica. Quando n\u00e3o est\u00e1 trabalhando, gosta de passar o tempo com seu filho de 3 anos.<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.7999999999999998;margin-top: 6pt;margin-bottom: 0pt\"><span style=\"font-size: 16pt;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\">Inser\u00e7\u00e3o de documentos com chaves sequenciais (autonumera\u00e7\u00e3o)<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\">Durante o processo de desenvolvimento de software, muitas vezes nos deparamos com uma situa\u00e7\u00e3o em que precisamos gerar uma chave exclusiva (de uma entidade) de forma sequencial ordenada (ordem crescente ou decrescente). Exemplos comuns incluem:<\/span><\/p>\n<ol style=\"margin-top: 0pt;margin-bottom: 0pt\">\n<li dir=\"ltr\" style=\"list-style-type: lower-alpha;font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\">\n<p dir=\"ltr\" style=\"line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 11pt;background-color: transparent;vertical-align: baseline\">Armazenamento de entradas de um arquivo de registro com um n\u00famero de sequ\u00eancia gerado automaticamente atribu\u00eddo a cada linha de dados<\/span><\/p>\n<\/li>\n<li dir=\"ltr\" style=\"list-style-type: lower-alpha;font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\">\n<p dir=\"ltr\" style=\"line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 11pt;background-color: transparent;vertical-align: baseline\">Armazenamento de entidades comerciais em um banco de dados e com uma chave prim\u00e1ria gerada a partir de um n\u00famero de sequ\u00eancia incremental<\/span><\/p>\n<\/li>\n<\/ol>\n<p dir=\"ltr\" style=\"line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\">No mundo dos bancos de dados relacionais, isso \u00e9 obtido com o uso de algo conhecido como \"sequ\u00eancia de banco de dados\". A sequ\u00eancia \u00e9 um recurso fornecido pela maioria dos produtos de banco de dados que simplesmente cria valores num\u00e9ricos exclusivos de forma ordenada. Ele simplesmente incrementa um valor e o retorna. Sem uma sequ\u00eancia de banco de dados, n\u00e3o \u00e9 muito f\u00e1cil gerar n\u00fameros exclusivos em uma ordem espec\u00edfica. \u00c9 por isso que ela \u00e9 uma escolha popular quando se trata de preencher uma chave prim\u00e1ria (ou qualquer outra chave exclusiva) com valores exclusivos que aumentam automaticamente.<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\">Outras maneiras de gerar chaves aleatoriamente exclusivas incluem o uso de recursos como GUID ou UUID. No entanto, n\u00e3o h\u00e1 garantia quanto \u00e0 natureza de incremento autom\u00e1tico que voc\u00ea obt\u00e9m ao usar um gerador de sequ\u00eancia de banco de dados.<\/span><\/p>\n<h2 dir=\"ltr\" style=\"line-height: 1.38;margin-top: 18pt;margin-bottom: 6pt\"><span style=\"font-size: 16pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;vertical-align: baseline\">Nenhuma sequ\u00eancia em bancos de dados NoSQL<\/span><\/h2>\n<p dir=\"ltr\" style=\"line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\">Diferentemente do mundo dos bancos de dados relacionais, n\u00e3o h\u00e1 um recurso de gera\u00e7\u00e3o de sequ\u00eancias incorporado diretamente dispon\u00edvel na maioria dos bancos de dados NoSQL do mercado. Pode-se argumentar que n\u00e3o \u00e9 comum que um sistema distribu\u00eddo com dados de forma livre tenha um n\u00famero exclusivo de incremento autom\u00e1tico como chave exclusiva em um documento devido aos n\u00fameros conflitantes gerados no caso de replica\u00e7\u00e3o cruzada de dados entre diferentes n\u00f3s e fragmentos. Em vez disso, a implementa\u00e7\u00e3o de um UUID parece ser uma op\u00e7\u00e3o muito mais vi\u00e1vel para garantir a exclusividade. No entanto, se voc\u00ea precisar de um ID exclusivo gerado aleatoriamente em uma sequ\u00eancia, precisar\u00e1, de alguma forma, ter uma coluna de sequ\u00eancia de incremento autom\u00e1tico em um banco de dados NoSQL, pois a solu\u00e7\u00e3o UUID n\u00e3o preservaria a natureza de sequenciamento dos n\u00fameros gerados. A quest\u00e3o principal: Como voc\u00ea lidaria com isso usando o Couchbase? Bem, o Couchbase tem tudo o que voc\u00ea precisa e \u00e9 isso que este post descrever\u00e1.<\/span><\/p>\n<h2 dir=\"ltr\" style=\"line-height: 1.38;margin-top: 18pt;margin-bottom: 6pt\"><span style=\"font-size: 16pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;vertical-align: baseline\">Configure um bucket do Couchbase para salvar os dados<\/span><\/h2>\n<p dir=\"ltr\" style=\"line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\">Digamos que estejamos armazenando itens de um cat\u00e1logo de produtos no Couchbase e, ao armazenar os produtos em um bucket do Couchbase, precisamos definir uma sequ\u00eancia gerada em cada JSON de dados do produto para que ela possa ser usada como uma \"chave\" exclusivamente identific\u00e1vel de um documento.<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\">Para fazer isso, siga as etapas abaixo para criar um bucket chamado \"prodcat\".<\/span><\/p>\n<ul dir=\"ltr\">\n<li style=\"line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\">Primeiro, fa\u00e7a login no console administrativo do Couchbase.<\/span><\/li>\n<li style=\"line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\">Tipo <\/span><a style=\"text-decoration: none\" href=\"https:\/\/localhost:8091\/ui\/index.html\"><span style=\"font-size: 11pt;font-family: Arial;color: #1155cc;background-color: transparent;text-decoration: underline;vertical-align: baseline\">https:\/\/localhost:8091\/ui\/index.html<\/span><\/a><span style=\"font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\"> em seu navegador.<\/span><\/li>\n<li style=\"line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\"><span style=\"font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\">Fa\u00e7a login com o nome de usu\u00e1rio e a senha de administrador.<\/span><\/span><\/li>\n<li style=\"line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\"><span style=\"font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\"><span style=\"font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\">Navegue at\u00e9 a guia Data Buckets (Compartimentos de dados) e clique em Create New Data Bucket (Criar novo compartimento de dados).<\/span><\/span><\/span><\/li>\n<\/ul>\n<ul dir=\"ltr\">\n<li style=\"line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\">Digite \"prodcat\" no campo Bucket Name e 512 no campo Per Node RAM Quota.<\/span><\/li>\n<\/ul>\n<ul dir=\"ltr\">\n<li style=\"line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\">Deixe todos os outros campos como padr\u00e3o e clique em \"Create\" (Criar).<\/span><\/li>\n<li style=\"line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\"><span style=\"font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\">Depois que o bucket for criado com \u00eaxito, ele ser\u00e1 listado com 0 itens.<\/span><\/span><\/li>\n<\/ul>\n<h2 dir=\"ltr\" style=\"line-height: 1.38;margin-top: 18pt;margin-bottom: 6pt\"><span style=\"font-size: 16pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;vertical-align: baseline\">Uso de documentos do contador<\/span><\/h2>\n<p dir=\"ltr\" style=\"line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\">O Couchbase lida com a gera\u00e7\u00e3o de sequ\u00eancias por meio do que \u00e9 conhecido como um documento \"contador\". O contador \u00e9 um documento que pode ser incrementado ou decrementado sequencialmente. Um aspecto importante a ser observado aqui \u00e9 que a opera\u00e7\u00e3o de incremento ou decremento do contador \u00e9 at\u00f4mica. Quando inserimos uma entidade comercial (como Product, no nosso caso) como um documento JSON, podemos usar o documento contador com um padr\u00e3o de chave para gerar uma sequ\u00eancia.<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\">O trecho de c\u00f3digo a seguir inicializa um documento de contador com um valor inicial de 20.<\/span><\/p>\n<pre><code class=\"language-java\">\/\/ create a connection to couchbase cluster and bucket\r\nCluster cluster = CouchbaseCluster.create(\"127.0.0.1\");\r\nBucket bucket = cluster.openBucket(BUCKET_NAME);\r\n\r\n\/\/ Here, the BUCKET_NAME = \u201cprodcat\u201d (The one that was created using the Couchbase admin console)\r\n\r\nString key = \"idGeneratorForProducts\";\r\ntry {\r\n    bucket.remove(key);\r\n} catch (DocumentDoesNotExistException e) {\r\n    \r\n}\r\n\r\ntry {\r\n    bucket.counter(key, 0, 20);\r\n} catch (DocumentDoesNotExistException e) {\r\n    log.info(\"counter doesn't exist yet and no initial value was provided\");\r\n}<\/code><\/pre>\n<p dir=\"ltr\" style=\"line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\">Nesse ponto, nosso documento de contador \u00e9 inicializado com um valor de 20.<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\">Executamos o c\u00f3digo a seguir em um loop para inserir os dados do produto de forma sequencial:<\/span><\/p>\n<pre><code class=\"language-java\">long nextIdNumber = bucket.counter(key, 1).content();\r\nlog.info(\"nextIdNumber = \"+ nextIdNumber);\r\nString id = \"Prod::\" + nextIdNumber;\r\n\/\/you're now ready to save your document:\r\n   Product product = ProductUtil.getProduct(nextIdNumber);\r\n   JsonObject content = JsonObject.create()\r\n          .put(\"type\", Product.TYPE)\r\n          .put(\"id\", product.getId())\r\n          .put(\"description\", product.getDescription())\r\n          .put(\"price\", product.getPrice());\r\n         \r\nbucket.insert(JsonDocument.create(id, content));<\/code><\/pre>\n<p><span style=\"font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\">A seguir, uma explica\u00e7\u00e3o do c\u00f3digo acima: <\/span><\/p>\n<p><span style=\"font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\">O nextId \u00e9 calculado incrementando o contador em 1.<\/span><\/p>\n<p><span style=\"font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\">Usamos o nextId para preencher o campo \"id\" do documento do produto.<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\">Onde \"idGeneratorForProducts\" \u00e9 o documento do contador que cont\u00e9m o valor atual do contador. Cada documento de produto tem o \"id\" preenchido com a sequ\u00eancia: <\/span><\/p>\n<pre><code class=\"language-json\">{\r\n  \"id\": \"Product 21\",\r\n  \"price\": \"20\",\r\n  \"type\": \"Product\",\r\n  \"description\": \"This is a utility product\"\r\n}<\/code><\/pre>\n<p dir=\"ltr\" style=\"line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\">Vale a pena mencionar que tamb\u00e9m podemos implementar a sequ\u00eancia em ordem decrescente. Nesse caso, a \u00fanica coisa que precisamos fazer \u00e9:<\/span><\/p>\n<ul>\n<li><span style=\"font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\">Inicialize o contador com o valor m\u00e1ximo.<\/span><\/li>\n<li><span style=\"font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\"><span style=\"font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\">Diminui o contador em 1 para gerar o nextId na sequ\u00eancia.<\/span><\/span><\/li>\n<li><span style=\"font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\"><span style=\"font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\"><span style=\"font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\">Use o nextId para inserir um documento em um bucket.<\/span><\/span><\/span><\/li>\n<\/ul>\n<p dir=\"ltr\" style=\"line-height: 1.38;margin-top: 0pt;margin-bottom: 10pt\"><span style=\"font-size: 16pt;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\">Conclus\u00e3o<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\">O c\u00f3digo usado neste artigo foi escrito em Java e faz uso do <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/couchbase-spring-boot-spring-data\/\">Spring Boot e Spring Data<\/a> Depend\u00eancias do Couchbase. Os mesmos conceitos podem ser aplicados a qualquer SDK de cliente do Couchbase.<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\">O c\u00f3digo-fonte do aplicativo pode ser encontrado em <\/span><a style=\"text-decoration: none\" href=\"https:\/\/github.com\/ratchakr\/prodcat\"><span style=\"font-size: 11pt;font-family: Arial;color: #1155cc;background-color: transparent;text-decoration: underline;vertical-align: baseline\">https:\/\/github.com\/ratchakr\/prodcat<\/span><\/a><span style=\"font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline\">.<\/span><\/p>","protected":false},"excerpt":{"rendered":"<p>Ratnopam Chakrabarti is a software developer currently working for Ericsson Inc. He has been focused on IoT, machine-to-machine technologies, connected cars, and smart city domains for quite a while. He loves learning new technologies and putting them to work. When [&hellip;]<\/p>","protected":false},"author":53,"featured_media":2546,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1816,1818],"tags":[1725,1630],"ppma_author":[9026],"class_list":["post-2526","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-couchbase-server","category-java","tag-nosql-database","tag-spring-boot"],"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>Inserting Documents w\/ Sequential Keys: Using Autonumber<\/title>\n<meta name=\"description\" content=\"During software development we often to generate a unique key in an orderly sequential fashion. Learn about the process of using Autonumber in Couchbase.\" \/>\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\/pt\/using-autonumber-in-couchbase\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Using Autonumber in Couchbase\" \/>\n<meta property=\"og:description\" content=\"During software development we often to generate a unique key in an orderly sequential fashion. Learn about the process of using Autonumber in Couchbase.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/pt\/using-autonumber-in-couchbase\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2017-02-09T10:46:35+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T01:46:25+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/02\/shutterstock_529329214.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2048\" \/>\n\t<meta property=\"og:image:height\" content=\"1365\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Laura Czajkowski, Developer Community Manager, Couchbase\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Laura Czajkowski, Developer Community Manager, Couchbase\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/using-autonumber-in-couchbase\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/using-autonumber-in-couchbase\/\"},\"author\":{\"name\":\"Laura Czajkowski, Developer Community Manager, Couchbase\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/5f1a0ece4e644bc8c037686fbc8f3220\"},\"headline\":\"Using Autonumber in Couchbase\",\"datePublished\":\"2017-02-09T10:46:35+00:00\",\"dateModified\":\"2025-06-14T01:46:25+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/using-autonumber-in-couchbase\/\"},\"wordCount\":825,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/using-autonumber-in-couchbase\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/02\/shutterstock_529329214.jpg\",\"keywords\":[\"NoSQL Database\",\"spring-boot\"],\"articleSection\":[\"Couchbase Server\",\"Java\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/using-autonumber-in-couchbase\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/using-autonumber-in-couchbase\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/using-autonumber-in-couchbase\/\",\"name\":\"Inserting Documents w\/ Sequential Keys: Using Autonumber\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/using-autonumber-in-couchbase\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/using-autonumber-in-couchbase\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/02\/shutterstock_529329214.jpg\",\"datePublished\":\"2017-02-09T10:46:35+00:00\",\"dateModified\":\"2025-06-14T01:46:25+00:00\",\"description\":\"During software development we often to generate a unique key in an orderly sequential fashion. Learn about the process of using Autonumber in Couchbase.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/using-autonumber-in-couchbase\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/using-autonumber-in-couchbase\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/using-autonumber-in-couchbase\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/02\/shutterstock_529329214.jpg\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/02\/shutterstock_529329214.jpg\",\"width\":2048,\"height\":1365,\"caption\":\"Nosql\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/using-autonumber-in-couchbase\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Using Autonumber in Couchbase\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@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\/5f1a0ece4e644bc8c037686fbc8f3220\",\"name\":\"Laura Czajkowski, Developer Community Manager, Couchbase\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/9deb07d5daaa00220534c31768bc4409\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/bc8eebaf25cbe39bc12fd7b1ef92550becc3953ab877a3f0285a59ec2d30b754?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/bc8eebaf25cbe39bc12fd7b1ef92550becc3953ab877a3f0285a59ec2d30b754?s=96&d=mm&r=g\",\"caption\":\"Laura Czajkowski, Developer Community Manager, Couchbase\"},\"description\":\"Laura Czajkowski is the Snr. Developer Community Manager at Couchbase overseeing the community. She\u2019s responsible for our monthly developer newsletter.\",\"url\":\"https:\/\/www.couchbase.com\/blog\/pt\/author\/laura-czajkowski\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Inserting Documents w\/ Sequential Keys: Using Autonumber","description":"Durante o desenvolvimento de software, muitas vezes precisamos gerar uma chave exclusiva em uma sequ\u00eancia ordenada. Saiba mais sobre o processo de uso do Autonumber no Couchbase.","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\/pt\/using-autonumber-in-couchbase\/","og_locale":"pt_BR","og_type":"article","og_title":"Using Autonumber in Couchbase","og_description":"During software development we often to generate a unique key in an orderly sequential fashion. Learn about the process of using Autonumber in Couchbase.","og_url":"https:\/\/www.couchbase.com\/blog\/pt\/using-autonumber-in-couchbase\/","og_site_name":"The Couchbase Blog","article_published_time":"2017-02-09T10:46:35+00:00","article_modified_time":"2025-06-14T01:46:25+00:00","og_image":[{"width":2048,"height":1365,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/02\/shutterstock_529329214.jpg","type":"image\/jpeg"}],"author":"Laura Czajkowski, Developer Community Manager, Couchbase","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Laura Czajkowski, Developer Community Manager, Couchbase","Est. reading time":"4 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/using-autonumber-in-couchbase\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/using-autonumber-in-couchbase\/"},"author":{"name":"Laura Czajkowski, Developer Community Manager, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/5f1a0ece4e644bc8c037686fbc8f3220"},"headline":"Using Autonumber in Couchbase","datePublished":"2017-02-09T10:46:35+00:00","dateModified":"2025-06-14T01:46:25+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/using-autonumber-in-couchbase\/"},"wordCount":825,"commentCount":1,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/using-autonumber-in-couchbase\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/02\/shutterstock_529329214.jpg","keywords":["NoSQL Database","spring-boot"],"articleSection":["Couchbase Server","Java"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/using-autonumber-in-couchbase\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/using-autonumber-in-couchbase\/","url":"https:\/\/www.couchbase.com\/blog\/using-autonumber-in-couchbase\/","name":"Inserting Documents w\/ Sequential Keys: Using Autonumber","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/using-autonumber-in-couchbase\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/using-autonumber-in-couchbase\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/02\/shutterstock_529329214.jpg","datePublished":"2017-02-09T10:46:35+00:00","dateModified":"2025-06-14T01:46:25+00:00","description":"Durante o desenvolvimento de software, muitas vezes precisamos gerar uma chave exclusiva em uma sequ\u00eancia ordenada. Saiba mais sobre o processo de uso do Autonumber no Couchbase.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/using-autonumber-in-couchbase\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/using-autonumber-in-couchbase\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/using-autonumber-in-couchbase\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/02\/shutterstock_529329214.jpg","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/02\/shutterstock_529329214.jpg","width":2048,"height":1365,"caption":"Nosql"},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/using-autonumber-in-couchbase\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Using Autonumber in Couchbase"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"Blog do Couchbase","description":"Couchbase, o banco de dados 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":"pt-BR"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"Blog do Couchbase","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"pt-BR","@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\/5f1a0ece4e644bc8c037686fbc8f3220","name":"Laura Czajkowski, gerente da comunidade de desenvolvedores, Couchbase","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/9deb07d5daaa00220534c31768bc4409","url":"https:\/\/secure.gravatar.com\/avatar\/bc8eebaf25cbe39bc12fd7b1ef92550becc3953ab877a3f0285a59ec2d30b754?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/bc8eebaf25cbe39bc12fd7b1ef92550becc3953ab877a3f0285a59ec2d30b754?s=96&d=mm&r=g","caption":"Laura Czajkowski, Developer Community Manager, Couchbase"},"description":"Laura Czajkowski \u00e9 a Snr. Developer Community Manager da Couchbase, supervisionando a comunidade. Ela \u00e9 respons\u00e1vel pelo nosso boletim informativo mensal para desenvolvedores.","url":"https:\/\/www.couchbase.com\/blog\/pt\/author\/laura-czajkowski\/"}]}},"authors":[{"term_id":9026,"user_id":53,"is_guest":0,"slug":"laura-czajkowski","display_name":"Laura Czajkowski, Developer Community Manager, Couchbase","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/bc8eebaf25cbe39bc12fd7b1ef92550becc3953ab877a3f0285a59ec2d30b754?s=96&d=mm&r=g","author_category":"","last_name":"Czajkowski","first_name":"Laura","job_title":"","user_url":"","description":"Laura Czajkowski \u00e9 a Snr. Developer Community Manager da Couchbase, supervisionando a comunidade. Ela \u00e9 respons\u00e1vel pelo nosso boletim informativo mensal para desenvolvedores."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/2526","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/users\/53"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/comments?post=2526"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/2526\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media\/2546"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media?parent=2526"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/categories?post=2526"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/tags?post=2526"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/ppma_author?post=2526"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}