Digibee Documentation
Solicitar documentaçãoAgendar demo
Português
Português
  • Primeiros passos
  • Destaques
    • Release notes
      • Release notes 2025
        • Maio
        • Abril
        • Março
        • Fevereiro
        • Janeiro
      • Release notes 2024
        • Dezembro
        • Novembro
        • Outubro
        • Setembro
        • Agosto
          • Lançamento de conectores 20/08/2024
        • Julho
        • Junho
        • Maio
        • Abril
        • Março
        • Fevereiro
        • Janeiro
      • Release notes 2023
        • Dezembro
        • Novembro
        • Outubro
        • Setembro
        • Agosto
        • Julho
        • Junho
        • Maio
        • Abril
        • Março
        • Fevereiro
        • Janeiro
      • Release notes 2022
        • Dezembro
        • Novembro
        • Outubro
        • Setembro
        • Agosto
        • Julho
        • Junho
        • Maio
        • Abril
        • Março
        • Fevereiro
        • Janeiro
      • Release notes 2021
      • Release notes 2020
    • AI Pair Programmer
    • Digibeectl
      • Comece a usar
        • Como instalar o Digibeectl no Windows
      • Digibeectl sintaxe
      • Operações do Digibeectl
  • Digibee em ação
    • Casos Práticos de Uso
      • Melhorando o desempenho de integrações com paginação de API
      • Automatize o armazenamento de arquivos com a Digibee
      • Estratégia de reprocessamento em integrações orientadas a eventos
      • Práticas essenciais para proteger informações sensíveis em pipelines com a Digibee
      • OAuth2 para acesso seguro a APIs
      • Proteja suas APIs com JWT na Digibee
      • Melhores práticas de integração para desenvolvedores na Digibee Integration Platform
      • Como usar Arquitetura orientada a eventos na Digibee Integration Platform
      • Download dinâmico de arquivos com a Digibee
      • Microsserviços: Padrão Circuit Breaker para melhorar a resiliência
      • Estratégia de tratamento de erros em integrações orientadas a eventos
    • Solução de problemas
      • Orientações para integrações
        • Como resolver problemas comuns em pipelines
        • Como resolver o Erro 409: “You cannot update a pipeline that is not on draft mode”
        • Como resolver o erro "Pipeline execution was aborted"
        • Autenticação integrada com o Microsoft Entra ID
        • Como resolver o erro "Failed to initialize pool: ONS configuration failed"
        • Como executar o mapeamento de endereços IP com o banco de dados Progress
        • Como construir fluxos de integração que enviam notificações de erro
        • Como enviar logs para serviços externos
        • Como o JSONPath difere nos conectores e no Painel de execução
        • Usando JSONPath para validar números com dígitos iniciais específicos
        • Como analisar o erro “Network error: Failed to fetch” no Painel de execução
        • Como trabalhar com requisições de payloads superiores a 5MB
        • Como configurar o Microsoft Entra ID para exibir grupos na Digibee Integration Platform
        • Como montar uma mensagem HL7
      • Comportamento e configuração de conectores
        • Timeout no conector Pipeline Executor
        • Como usar DISTINCT e COUNT no Object Store
        • Entendendo o @@DGB_TRUNCATED@@ na Digibee Integration Platform
        • Como resolver nomes sem DNS - REST, SOAP, SAP (web protocols)
        • Como ler e escrever arquivos dentro de pastas
        • AuthToken Reuse para conector Salesforce
        • Como resolver o erro "Invalid payload" na integração de API
        • Bancos de dados suportados
          • Funções e utilidades para banco de dados
      • Implementação e exemplos de uso de conectores
        • Google Storage: Cenários de uso
        • DB V2: Cenários de uso
        • For Each: Exemplo de uso
        • Template e suas utilizações
        • Implementação do Digibee JWT
        • Email V1: Exemplos de uso (Descontinuado)
      • Aplicações do JOLT
        • Transformer: Conhecendo o JOLT
        • Transformer: Transformações com JOLT
        • Transformer: Adicionar valores aos elementos da lista
        • Transformer: Visão geral das operations
        • Transformer: Formatação de datas utilizando split e concat
        • Transformer: Lógica IF-ELSE simples com JOLT
      • Dicas de acesso e desempenho da Plataforma
        • Como resolver problemas para fazer o login na Digibee Integration Platform
        • Como receber atualizações da Status Page da Digibee
        • Como executar a limpeza de cache da Digibee Integration Platform
      • Orientações sobre governança e solução de problemas
        • Como consumir pipelines com Internal API usando ZTNA
        • Como usar a API Interna com ou sem uma VPN
        • Como gerar, converter e cadastrar SSH Keys
        • Autenticação mTLS
          • Como configurar o mTLS na Digibee Integration Platform
          • Perguntas frequentes: Certificados no mTLS
        • Como conectar a Digibee ao Oracle RAC
        • Como conectar a Digibee à SAP
        • Como conectar a Digibee ao MongoDB Atlas usando VPN
        • Como gerenciar IPs na Digibee Integration Platform
        • Configurando Account Dropbox
        • Como usar sua conta do Gmail com o componente de e-mail Digibee (SMTP)
        • Como utilizar a política CORS na Digibee Integration Platform
      • Cenários de implantação
        • Como solucionar erros de “Out of memory” na implantação
        • Aviso de conflito de rotas
    • Boas práticas
      • Boas práticas para a construção de um pipeline
      • Boas práticas ao validar mensagens em um pipeline consumer
      • Evitando loops e maximizando a eficiência dos pipelines
      • Nomenclatura: Global, Contas (Accounts) e Consumers (Chaves de API)
      • Tutorial de paginação
        • Tutorial de paginação - parte 1
        • Tutorial de paginação - parte 2
        • Tutorial de paginação - parte 3
        • Tutorial de paginação - parte 4
      • Exemplos de paginação
      • Arquitetura orientada a eventos
      • Modelo de notificação em integrações orientadas a eventos
      • Modelo de integração OAuth2 com a Digibee
      • Boas práticas para tratamento de erros em pipelines
    • Digibee Academy
      • Integration Developer Bootcamp
  • Guias de referência
    • Conectores
      • AWS
        • S3 Storage
        • SQS
        • AWS Secrets Manager
        • AWS Athena
        • AWS CloudWatch
        • AWS Elastic Container Service (ECS)
        • AWS Eventbridge
        • AWS Identity and Access Management (IAM)
        • AWS Kinesis
        • AWS Kinesis Firehose
        • AWS Key Management Service (KMS)
        • AWS Lambda
        • AWS MQ
        • AWS Simple Email Service (SES)
        • AWS Simple Notification System (SNS)
        • AWS Security Token Service (STS)
        • AWS Translate
      • Azure
        • Azure CosmosDB
        • Azure Event Hubs
        • Azure Key Vault
        • Azure ServiceBus
        • Azure Storage Datalake Service
        • Azure Storage Queue Service
      • Enterprise applications
        • SAP
        • Salesforce
        • Braintree
        • Facebook
        • GitHub
        • Jira
        • ServiceNow
        • Slack
        • Telegram
        • Twillio
        • WhatsApp
        • Wordpress
        • Workday
        • Zendesk
      • File storage
        • Blob Storage (Azure)
        • Digibee Storage
        • Dropbox
        • FTP
        • Google Drive
        • Google Storage
        • OneDrive
        • SFTP
        • WebDav V2
        • WebDav (Descontinuado)
      • Files
        • Append Files
        • Avro File Reader
        • Avro File Writer
        • CSV to Excel
        • Excel
        • File Reader
        • File Writer
        • GZIP V2
        • GZIP V1 (Descontinuado)
        • Parquet File Reader
        • Parquet File Writer
        • Stream Avro File Reader
        • Stream Excel
        • Stream File Reader
        • Stream File Reader Pattern
        • Stream JSON File Reader
        • Stream Parquet File Reader
        • Stream XML File Reader
        • XML Schema Validator
        • ZIP File
        • NFS
      • Flow
        • Delayer
      • Google/GCP
        • Google BigQuery
        • Google BigQuery Standard SQL
        • Google Calendar
        • Google Cloud Functions
        • Google Mail
        • Google PubSub
        • Google Secret Manager
        • Google Sheets
      • Industry solutions
        • FHIR (Beta)
        • Gupy Public API
        • HL7
        • HubSpot: Sales e CMS
        • Mailgun API
        • Oracle NetSuite (Beta)
        • Orderful
        • Protheus: Billing e Inventory of Cost
      • Logic
        • Block Execution
        • Choice
        • Do While
        • For Each
        • Retry
        • Parallel Execution
      • Queues and messaging
        • Event Publisher
        • JMS
        • Kafka
        • RabbitMQ
      • Security
        • AES Cryptography
        • Asymmetric Cryptography
        • CMS
        • Digital Signature
        • JWT (Descontinuado)
        • JWT V2
        • Google IAP Token
        • Hash
        • Digibee JWT (Generate and Decode)
        • LDAP
        • PBE Cryptography
        • PGP
        • RSA Cryptography
        • Symmetric Cryptography
      • Structured data
        • CassandraDB
        • DB V2
        • DB V1 (Descontinuado)
        • DynamoDB
        • Google Big Table
        • Memcached
        • MongoDB
        • Object Store
        • Relationship
        • Session Management
        • Stored Procedure
        • Stream DB V3
        • Stream DB V1 (Descontinuado)
        • ArangoDb
        • Caffeine Cache
        • Caffeine LoadCache
        • Couchbase
        • CouchDB
        • Ehcache
        • InfluxDB
      • Tools
        • Assert V2
        • Assert V1 (Descontinuado)
        • Base64
        • CSV to JSON V2
        • CSV to JSON V1 (Descontinuado)
        • HL7 Message Transformer (Beta)
        • HTML to PDF
        • Transformer (JOLT) V2
        • JSLT
        • JSON String to JSON Transformer
        • JSON to JSON String Transformer
        • JSON to XML Transformer
        • JSON to CSV V2
        • JSON to CSV Transformer (Descontinuado)
        • JSON Path Transformer V2
        • JSON Path Transformer
        • JSON Transformer
        • Log
        • Pipeline Executor
        • QuickFix (Beta)
        • SSH Remote Command
        • Script (JavaScript)
        • Secure PDF
        • Store Account
        • Template Transformer
        • Throw Error
        • Transformer (JOLT)
        • Validator V1 (Descontinuado)
        • Validator V2
        • XML to JSON Transformer
        • XML Transformer
        • JSON Generator (Mock)
      • Web protocols
        • Email V2
        • Email V1 (Descontinuado)
        • REST V2
        • REST V1 (Descontinuado)
        • SOAP V3
        • SOAP V2
        • SOAP V1 (Descontinuado)
        • WGet (Download HTTP)
        • gRPC
    • Triggers
      • Web Protocols
        • API Trigger
        • Email Trigger
        • Email Trigger V2
        • HTTP Trigger
        • HTTP File Trigger
          • HTTP File Trigger - Downloads
          • HTTP File Trigger - Uploads
        • REST Trigger
      • Scheduling
        • Scheduler Trigger
      • Messaging and Events
        • Event Trigger
        • JMS Trigger
        • Kafka Trigger
        • RabbitMQ Trigger
      • Others
        • DynamoDB Streams Trigger
        • HL7 Trigger
        • Salesforce Trigger - Events
    • Double Braces
      • Como referenciar dados usando Double Braces
      • Funções Double Braces
        • Funções matemáticas
        • Funções de utilidades
        • Funções numéricas
        • Funções de string
        • Funções de JSON
        • Funções de data
        • Funções de comparação
        • Funções de arquivo
        • Funções de condição
      • Preenchimento automático de expressões Double Braces
  • Ciclo de desenvolvimento
    • Build
      • Canvas
        • Assistente de IA
        • Smart Connector User Experience
        • Painel de execução
        • Modos de Design e Inspeção
        • Linter: Validação de construção do canvas
        • Mock de Conectores
      • Pipeline
        • Como criar um pipeline
        • Como criar um pipeline usando uma especificação OpenAPI
        • Como criar um projeto
        • Histórico de versões do pipeline
        • Versionamento de pipelines
        • Processamento de mensagens
        • Subpipelines
      • Cápsulas
        • Como usar Cápsulas
          • Como criar uma coleção de Cápsulas
            • Dimensões do cabeçalho da Cápsula
          • Como criar um grupo de Cápsulas
          • Como configurar uma Cápsula
          • Como construir uma Cápsula
          • Como testar uma Cápsula
          • Como salvar uma Cápsula
          • Como publicar uma Cápsula
          • Como mudar uma Cápsula de coleção ou grupo
          • Como arquivar e restaurar uma Cápsula
        • Versionamento de Cápsulas
        • Cápsulas públicas
          • SAP
          • Digibee Tools
          • Google Sheets
          • Gupy
          • Enviar alerta por email
          • Totvs Live
          • Canvas LMS
        • Assistente de IA para geração de documentação de cápsulas
    • Run
      • Conceitos de Run
        • Autoscalling
      • Implantação
        • Implantando um pipeline
        • Como reimplantar um pipeline
        • Como promover pipelines entre ambientes
        • Como verificar o Histórico de implantação do pipeline
        • Como fazer rollback de versão implantada
        • Como utilizar as funções avançadas do histórico de implantação
        • Status de implantação do pipeline
      • Como os alertas funcionam nos pipelines em Run
    • Monitor
      • Monitor Insights (Beta)
      • Execuções concluídas
        • Download dos logs de execução de pipeline
      • Pipeline logs
      • Pipeline Metrics
        • API de métricas de pipeline
          • Como configurar API de métricas Digibee com Datadog
          • Como configurar API de métricas Digibee com Prometheus
        • Latência de Conector
      • Alertas
        • Como criar um alerta
        • Como editar um alerta
        • Como ativar, desativar ou duplicar um alerta
        • Como excluir um alerta
        • Como configurar alertas no Slack
        • Como configurar alertas no Telegram
        • Como configurar alertas via webhook
        • Métricas disponíveis
        • Boas práticas para alertas
        • Casos de uso para alertas
      • Monitoramento de conexões de VPN
        • Alertas para métricas de VPN
  • Gerenciamento de conectividade
    • Conectividade
    • Zero Trust Network Access (ZTNA)
      • Pré-requisitos para usar o ZTNA
      • Como visualizar conexões (Edge Routers)
      • Como visualizar Network Mappings associados com um Edge Router
      • Como adicionar novas conexões em ZTNA (Edge Routers)
      • Como deletar conexões em ZTNA (Edge Routers)
      • Como visualizar rotas (Network mapping)
      • Como adicionar novas rotas (Network Mapping)
      • Como adicionar rotas em lote para ZTNA
      • Como editar rotas (Network Mapping)
      • Como deletar rotas (Network Mapping)
      • Como gerar novas chaves (Edge Router)
      • Como mudar o ambiente dos Edge Routers
      • Fluxo Inverso (Inverse Flow) de ZTNA
      • Grupos de ZTNA
    • Virtual Private Network (VPN)
  • Administração da plataforma
    • Administração
      • Auditoria
      • Controle de acesso
        • Usuários
        • Grupos
        • Papéis
          • Lista de permissões por serviço
          • Papéis e responsabilidades: Governança e identificação de pessoas-chave
      • Integração com provedores de identidades
        • Como integrar um provedor de identidade
        • Regras de autenticação
        • Integração de grupos IdP com grupos Digibee
          • Como criar uma integração de grupo
          • Como testar uma integração de grupo
          • Como habilitar uma integração de grupo
          • Como editar uma integração de grupo
          • Como remover uma integração de grupo
      • Autenticação e autorização de usuários
        • Como habilitar e desabilitar a autenticação de dois fatores
        • Fluxo de login
      • Grupos da organização
    • Configurações
      • Globals
        • Como criar Globals
        • Como editar ou excluir Globals
        • Como usar Globals
      • Contas (Accounts)
        • Configurando cada tipo de conta
        • Monitore alterações nas configurações da conta em pipelines implantados
        • Arquitetura OAuth2
          • Cadastro de novos provedores OAuth
      • Consumers (Chaves de API)
      • Modelos de Relacionamento
      • Multi-Instância
        • Implantando um pipeline de multi-instância
      • Transmissão de Logs
        • Como usar a Transmissão de Logs com o Datadog
    • Governança
      • Políticas
        • Segurança
          • Política de acesso à APIs internas
          • Política de acesso à APIs externas
          • Política de campos sensíveis
        • Transformação
          • Cabeçalho HTTP personalizado
          • Cabeçalho HTTP CORS
        • Política de Limite de réplicas
    • Licenciamento
      • Modelos de licenciamento
        • Modelo baseado em consumo
      • Capacidade e cotas
      • Consumo de licenças
    • Digibee APIs
      • Como criar credenciais de API
  • Conceitos da Digibee
    • Pipeline Engine
      • Digibee Integration Platform Pipeline Engine v2
      • Suporte a Credenciais Dinâmicas (Beta Restrito)
    • SaaS dedicado na Digibee Integration Platform
      • Arquitetura da Digibee Integration Platform no modelo Saas dedicado
      • Requisitos para o modelo SaaS dedicado da Digibee
      • Site-to-Site VPN para suporte de clientes SaaS dedicado
      • Responsabilidades dos cliente Saas dedicado
      • Política de Imagens dos Nodes Kubernetes Customizados
      • Instalação do Digibee Dedicated SaaS no AWS
        • Como instalar os requisitos antes da instalação da Digibee Integration Platform no EKS
        • Permissões para usar a Digibee Integration Platform no EKS
        • Como criar nós customizados para EKS (Golden Images)
    • Introdução ao ZTNA
  • Ajuda & FAQ
    • Suporte ao Cliente Digibee
    • Solicitar documentação, sugerir nova feature ou enviar feedback
    • Programa Beta
    • Segurança e conformidade
    • Sobre a Digibee
Fornecido por GitBook
Nesta página
  • Parâmetros
  • Boas práticas de utilização
  • Fluxo de mensagens
  • Entrada
  • Saída
  • Object Store em ação
  • Inserir diversos itens de uma única vez em uma coleção
  • Encontrar itens a partir de uma determinada query
  • Encontrar todos os itens a partir de uma query
  • Atualizar um item a partir de um ID específico
  • Remover um item a partir de um ID específico
  • Agregação para cópia da coleção
  • Agregação para filtro de itens da coleção
  • Criar um index com tempo de expiração
  • Listar todos os indexes
  • Fazer o drop um index existente
  • Tecnologia

Isto foi útil?

  1. Guias de referência
  2. Conectores
  3. Structured data

Object Store

Descubra mais sobre o conector Object Store e saiba como utilizá-lo na Digibee Integration Platform.

AnteriorMongoDBPróximoRelationship

Atualizado há 3 meses

Isto foi útil?

O Object Store realiza operações para armazenar qualquer documento no Object Store da Digibee. É uma maneira rápida e fácil de salvar informações úteis do tipo JSON, que possui operações para auxiliar em diversos usos durante a criação de um pipeline.

Parâmetros

Dê uma olhada nas opções de configuração do conector. Parâmetros suportados por estão marcados com (DB).

Parâmetro
Descrição
Valor padrão
Tipo de dado

Account

Conta que será utilizada pelo conector. Este item não pode ser alterado.

Digibee Object Store Account

N/A

Operation

Operação que será executada dentro do Object Store - Find by Object ID, Find By Query, Insert, Aggregate, Update By Object ID, Update By Query, Delete By Object ID, Delete By Query, Create Index, List Indexes e Drop Index.

Find by Object ID

String

Object Store Name

Nome da coleção que será utilizada para gravar ou ler informações. Caso não exista, ela será criada automaticamente.

sales

String

Expire After Seconds (DB)

Determina o número de segundos após os quais um documento do Object Store expira.

0

Inteiro

Object ID (DB)

Identificador do objeto que será armazenado ou buscado. Pode ser um número ou um UUID. Este item suporta Double Braces.

1

String

Limit (DB)

Número máximo de objetos que serão retornados em uma busca. Este item suporta Double Braces.

0

Inteiro

Skip (DB)

Quantidade de objetos a serem pulados antes de retornar para a query. Este parâmetro é normalmente utilizado em conjunto com o parâmetro Limit para criar uma forma de paginação. Este item suporta Double Braces.

0

Inteiro

Sort (DB)

Especificação das regras de ordenação da query.

N/A

String

Query (DB)

Este campo JSON para consulta é disponível somente se as operações Find by Query, Aggregate, Update by Query, Delete by Query, Create Index ou Drop Index estiverem selecionadas.

N/A

String

Document (DB)

Disponível somente se as operações Insert, Update by Object ID ou Update by Query estiverem selecionadas. Expressões Double Braces são permitidas.

N/A

String

Unique Index

Se a opção estiver ativada, será criado um Object ID que aceita apenas valores únicos; do contrário, um index não único será criado.

True

Booleano

Isolated

Se a opção estiver ativada, todas as queries serão delimitadas no escopo de execução.

False

Booleano

Upsert

Esta opção é disponível somente se as operações Update By Object ID ou Update By Query estiverem selecionadas. Quando ativado, o objeto informado para o conector será inserido na coleção caso ele não exista.

False

Booleano

Fail On Error

Se a opção estiver habilitada, a execução do pipeline com erro será interrompida; do contrário, a execução do pipeline continua, mas o resultado vai mostrar um valor falso para a propriedade "success".

False

Booleano

Boas práticas de utilização

O Object Store é uma base de dados (NoSQL) auxiliar para integrações. Sua utilização confere mais agilidade e praticidade no desenvolvimento de integrações. Para exemplificar a aplicabilidade deste conector, listamos as seguintes boas práticas de utilização:

  • O Object Store desempenha a função de uma base de dados intermediária, isto é, para intermediação de informações entre fluxos de uma integração. Sendo assim, ele deve ser utilizado unicamente para armazenamento de informações relevantes para a integração em questão.

  • O Object Store é um banco de dados temporário. Uma vez utilizado para intermediar informações relevantes para o fluxo de integração, dados antigos e dispensáveis devem ser removidos regularmente do banco de dados. Você pode removê-los manualmente ou criar um index com um mecanismo de TTL (Time to live) para expirar automaticamente os dados antigos.

  • Por se tratar de uma base auxiliar, o conector Object Store não deve ser utilizado como uma base de dados permanente, mas sim de maneira pontual, com o objetivo de apoiar o usuário no desenvolvimento das integrações.

  • Todo e qualquer dado é armazenado com o máximo de segurança dentro da Digibee Integration Platform. Ainda assim, recomendamos que dados sensíveis armazenados no Object Store sejam criptografados. Para isso, utilize nossos conectores de criptografia disponíveis no canvas.

Fluxo de mensagens

Entrada

Para esse conector específico, o único padrão de mensagem de entrada obrigatória é o formato JSON aplicado ao objeto. O parâmetro de entrada pode utilizar a sintaxe de Double Braces para enviar a mensagem recebida para o conector.

Saída

  • Insert

{
    "data": [],
    "updateCount": 1
}
  • Find

{
   "data": [
       {
           "name": "Galaxy s20",
           "uuid": "123",
           "_oId": "1"
       }
   ],
   "rowCount": 1
}
  • Update

{
    "data": [],
    "updateCount": 1
}
  • Delete

{
    "data": [],
    "updateCount": 1
}
  • Aggregate

{
    "data": [],
    "rowCount": 0
}

Object Store em ação

Acima foram demonstrados alguns exemplos de saída de cada operação. Veja abaixo mais aplicações que demonstram a configuração correta para que se obtenha determinado resultado:

Inserir diversos itens de uma única vez em uma coleção

Ao enviar um array de objetos no campo query, o conector insere cada item de forma separada dentro da coleção selecionada.

Observe como configurar o conector com os parâmetros Operation (Insert), Unique Index (False) e Query:

[
   {
       "id": 1,
       "name": "Galaxy s20",
       "price": 5000
   },
   {
       "id": 2,
       "name": "Samsung 4k 55\"",
       "price": 5000
   },
   {
       "id": 3,
       "name": "Galaxy A10",
       "price": 699
   },
   {
       "id": 4,
       "name": "Galaxy A51",
       "price": 1620
   }
]

Saída

{
    "data": [],
    "updateCount": 4
}

A inserção de múltiplos objetos de uma só vez é permitida apenas em coleções criadas com Unique Index (False). A propriedade Unique Index é definida na criação da coleção. Depois que o index é criado, não é possível alterar a propriedade.

Encontrar itens a partir de uma determinada query

Como exemplo, considere um Object Store que já possui itens cadastrados do tipo produto e que tem as características de nome e preço.

Observe como configurar o conector com os parâmetros Operation (Find By Query) e Query:

{
    "product.price": { $gt: 2000 }
}

Saída

{
   "data": [
       {
           "product": {
               "id": 1,
               "name": "Galaxy s20",
               "price": 5000
           },
           "_oId": "1"
       },
       {
           "product": {
               "id": 2,
               "name": "Samsung 4k 55\"",
               "price": 5000
           },
           "_oId": "2"
       }
   ],
   "rowCount": 2
}

Encontrar todos os itens a partir de uma query

Como exemplo, considere um Object Store que já possui itens cadastrados do tipo produto e que tem as características de nome e preço.

Observe como configurar o conector com os parâmetros Operation (Find By Query), Limit (10) e Query:

{}

Saída

{
   "data": [
       {
           "product": {
               "id": 1,
               "name": "Galaxy s20",
               "price": 5000
           },
           "_oId": "1"
       },
       {
           "product": {
               "id": 2,
               "name": "Samsung 4k 55\"",
               "price": 5000
           },
           "_oId": "2"
       },
       {
           "product": {
               "id": 3,
               "name": "Galaxy A10",
               "price": 699
           },
           "_oId": "3"
       },
       {
           "product": {
               "id": 4,
               "name": "Galaxy A51",
               "price": 1620
           },
           "_oId": "4"
       }
   ],
   "rowCount": 4
}

Nesse cenário específico, o parâmetro Limit foi configurado para que não haja uma sobrecarga desnecessária ao retornar os objetos de um Object Store. Caso a opção não seja configurada dessa forma, poderá ocorrer um erro de "Out Of Memory" dentro do pipeline. Da maneira indicada, existe controle sobre quantos objetos são visualizados na resposta.

Atualizar um item a partir de um ID específico

Como exemplo, considere um Object Store que já possui itens cadastrados do tipo produto e que possui as características de nome e preço.

Observe como configurar o conector com os parâmetros Operation (Update By Object ID), Object ID (3) e Document:

{
   $set: {
       "product": {
         "id": 3,
         "name": "Galaxy A10",
         "price": 605
       }
   }
}

Saída

{
    "data": [],
    "updateCount": 1
}

Nesse cenário específico, é possível ver que a saída é apenas um objeto identificando a realização de uma atualização. Para visualizar se o objeto foi devidamente atualizado, repita o cenário da busca por ID.

Remover um item a partir de um ID específico

Como exemplo, considere um Object Store que já possui itens cadastrados do tipo produto e que tem as características de nome e preço.

Observe como configurar o conector com os parâmetros Operation (Delete By Object ID) e Object ID (4).

Saída

{
    "data": [],
    "updateCount": 1
}

Nesse cenário específico, é possível ver que a saída é apenas um objeto identificando a realização de uma atualização. Para visualizar se o objeto foi devidamente removido, repita o cenário da busca por ID.

Agregação para cópia da coleção

Como exemplo, considere um Object Store chamado "product" que já possui itens cadastrados do tipo produto e que tem as características de nome e preço. A partir disso, crie um novo Object Store chamado "product-backup", copiando todos os itens da coleção mencionada acima.

Você deve receber um array de objetos contendo os pipelines de agregação da query no parâmetro Document.

Observe como configurar o conector com os parâmetros Operation (Aggregate) e Query:

[
   {
       $merge: {
           into: "product-backup",
           on: "_id",
           whenMatched: "replace",
           whenNotMatched: "insert"
       }
   }
]

Nesse cenário específico, a query foi configurada para substituir itens repetidos pelos novos na coleção.

Saída

{
    "data": [],
    "rowCount": 0
}

Para verificar se a coleção foi devidamente criada com os itens propostos, repita o cenário da busca por todos os itens e informe a coleção nova.

Agregação para filtro de itens da coleção

Você deve receber um array de objetos contendo os pipelines de agregação da query no parâmetro Document.

Observe como configurar o conector com os parâmetros Operation (Aggregate) e Query:

[
   {
       $match: {
           "product.price": {
               $gt: 3000
           }
       }
   },
   {
       $group: {
           _id: null,
           count: {
               $sum: 1
           }
       }
   }
]

Nesse cenário específico, a query foi configurada para buscar os produtos que possuem determinado valor e apenas apresentar a soma deles.

Saída

{
    "data": [
        {
            "count": 2
        }
    ],
    "rowCount": 0
}

Criar um index com tempo de expiração

Com o Object Store é possível criar um index com um atributo TTL (Time to live), com o qual você pode definir uma estratégia de expiração para os documentos. Esse comportamento é controlado no parâmetro Expire after seconds. Aqui estão alguns exemplos de como você pode criar indexes com estratégias de expiração:

Criar um index com TTL constante

Veja um exemplo para a configuração dos parâmetros Expire after seconds e Query:

O nome do campo deve corresponder ao atributo de data do seu documento, que controlará o tempo de vida do objeto. Além disso, todos os documentos com esse campo são automaticamente excluídos após o número de segundos especificado no parâmetro Expire after seconds.

Output

{
    "data": "expiresAt_1",
    "rowCount": 0
}

Criar um index com datas personalizadas

Veja um exemplo para a configuração dos parâmetros Expire after seconds e Query:

O nome do campo deve corresponder ao atributo de data do seu documento, que controlará o tempo de vida do objeto. Você também deve configurar o parâmetro Expire after seconds para 0.

Nesse cenário, a expiração é definida com a data e hora definidas no valor do campo correspondente no parâmetro Query.

Ao inserir novos documentos, certifique-se de que o campo que você configurou no index seja criado com um valor de data.

{
    "id": 1,
    "name": "Galaxy s20",
    "price": 5000,
    "expiresAt": new Date()
}

O TTL index não garante que os dados expirados sejam excluídos imediatamente após a expiração. Pode haver um atraso entre o momento em que um documento expira e o momento em que o Object Store remove o documento do banco de dados. Isso acontece porque a tarefa em segundo plano que remove documentos expirados é executada a cada 60 segundos.

Listar todos os indexes

Essa operação deve listar todos os indexes que o usuário criou em um Object Store.

Output

{
  "data": [
    {
      "v": 2,
      "key": {
        "expiresAt": 1
      },
      "name": "expiresAt_1",
      "expireAfterSeconds": 0
    }
  ],
  "rowCount": 1
}

Fazer o drop um index existente

Nessa operação, é possível fazer o drop um index previamente criado pelo cliente.

Veja como configurar o conector com o parâmetro Drop Index Operation e Query:

{
    "expiresAt": 1
}

Output

{ 
    "data": "expiresAt_1", 
    "rowCount": 0
}

Tecnologia

Se o conector Object Store estiver envolvido em atualizações, dentro de um conector de iterações (, , etc.) e realizando execuções paralelas, pode haver concorrência na atualização de registros caso as instruções de atualização de registros sejam exatamente iguais. Consequentemente, uma instrução retornará "updateCount":1 e a outra "updateCount": 0. Isso acontece quando 2 registros exatamente iguais entram no pool de operação do Object Store e as instruções de atualização ou inserção (com o parâmetro Upsert habilitado) são executadas sequencialmente. A primeira instrução efetiva uma atualização e a segunda encontra o registro já persistido e verifica que não há nada a ser modificado, retornando que nenhuma ação foi necessária ("updateCount": 0).

O Object Store utiliza operadores de busca e agregação de objetos semelhantes à sintaxe do MongoDB.

Os dados do Object Store são isolados entre os ambientes. Entretanto, os dados do ambiente de Test compartilham o mesmo ambiente que os dados do .

expressões Double Braces
For Each
Stream File Reader
Consulte a documentação externa do MongoDB para saber mais.
Painel de execução