Mongo DB

Descubra mais sobre o componente Mongo DB e saiba como utilizá-lo na Digibee Integration Platform.

O Mongo DB realiza operações em uma conexão de database Mongo, retornando apenas um objeto JSON.

Importante: cuidado com o consumo de memória para datasets grandes.

Parâmetros

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

ParâmetroDescriçãoValor padrãoTipo de dado

Account

Conta a ser utilizada pelo componente. Contas suportadas: Basic e Certificate Chain.

N/A

String

Use SSL/TLS to connect

Quando ativada, uma conexão com criptografia SSL/TLS será utilizada.

False

Booleano

Custom SSL/TLS certificate

Define o certificado customizado que pode ser usado para a conexão com SSL/TLS. Este campo suporta expressões Double Braces (DB).

N/A

String

Allow invalid hostnames

Quando ativada, a opção ignora a validação de hostnames em certificados SSL/TLS.

False

Booleano

Operation

Operação a ser executada (Find, Aggregate, Delete One, Delete Many, Insert One, Insert Many, Update One, Update Many, Replace One, List Indexes, Create Index e Drop Index).

Find

String

Connection String

Conexão de string.

mongodb://localhost:27017

String

Database Name

Nome da base de dados.

databaseName

String

Collection Name

Nome da coleção.

collectionName

String

Expire after seconds

Tempo (em segundos) para expiração de documentos que utilizem um índice TTL. Disponível apenas se a operação Create Index for selecionada.

0

Inteiro

Query (DB)

Especificação Mongo a ser enfileirada. Por exemplo: { _id: ObjectId( {{ message.$.id }} ) }

N/A

String

Document

Disponível somente se Insert One, Insert Many, Update One, Update Many ou Replace One estiverem selecionadas.

N/A

String

Limit (DB)

Especificação do número máximo de objetos que podem ser retornados.

0

Inteiro

Skip (DB)

Número de objetos a serem pulados antes de retornar para a query.

0

Inteiro

Sort

Especificação do parâmetro a ser ordenado pelo campo.

N/A

String

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

Max Wait For Connection (in ms)

Apresenta padrão 10000 (você pode escolher a opção).

10000

Inteiro

Connection Timeout (in ms)

Apresenta 30000 (você pode escolher a opção).

30000

Inteiro

Socket Timeout (in ms)

300000 ou outro valor.

300000

Inteiro

Heartbeat Connection Timeout (in ms)

10000 (você pode escolher a opção).

10000

Inteiro

Max Connection Idle Timeout (in ms)

Apresenta padrão 1800000.

1800000

Inteiro

Importante: atualmente o componente suporta apenas contas Basic e Certificate Chain e deve ser informado através do campo Account, não diretamente na string de conexão.

Você pode:

  • utilizar um JSON fixo:

document = "{\"data\": [{\"object\": 1}, {\"object\": 2}]}"

  • conseguir algum JSON da mensagem, que vai buscar o objeto 'data' da mensagem:

document = "{{ message.$.data }}

  • combinar ambos os exemplos:

document = "{\"data\": [{\"object\": {{ message.$.id1 }}}, {\"object\": {{ message.$.id2 }}}]}"]

Se o Mongo DB precisar de alguma autenticação, você deverá criar uma conta (tipo BASIC) e utilizá-la no componente.

Para converter Double Braces, nós utilizamos especificações de JSON Path. Leia a documentação sobre JSON Path no GitHub.

Mongo DB em Ação

Operação Find

Config

{
	"operation": "FIND",
	"databaseName": "test",
	"collectionName": "model",
	"url": "mongodb://localhost:27017",
	"query": "{_id: ObjectId({{ message.$.parameters.id }})}",
	"failOnError": false
}

Entrada

{
	"parameters": {
		"id": "5c87c7af06c3af7dbedc7bb3"
	}
}

Saída

{"data": [...some data...],"rowCount": 10,"updateCount": 0}

Operação Replace One

Config

{
	"data": [...some data...],
	"rowCount": 10,
	"updateCount": 0
}

Entrada

{
	"operation": "REPLACE_ONE",
	"databaseName": "test",
	"collectionName": "model",
	"document": "{\"data\": [{\"object\": 1}, {\"object\": 2}]}",
	"url": "mongodb://localhost:27017",
	"query": "{_id: ObjectId({{ message.$.parameters.id }})}",
	"failOnError": false
}

Saída

{
    "data": {},
    "rowCount": 0,
    "updateCount": 1
}

Operação Update

Config

{
	"operation": "UPDATE",
	"databaseName": "test",
	"collectionName": "model",
	"document": "{\"$set\": {\"data\": [{\"object\": 1}, {\"object\": 2}]}}",
	"url": "mongodb://localhost:27017",
	"query": "{_id: ObjectId({{ message.$.parameters.id }})}",
	"failOnError": false
}

Entrada

{
	"parameters": {
		"id": "5c87c7af06c3af7dbedc7bb3"
	}
}

Saída

{
	"data": {},
	"rowCount": 0,
	"updateCount": 1
}

Operação Update Many

Config

{
	"operation": "UPDATE_MANY",
	"databaseName": "test",
	"collectionName": "model",
	"document": "{\"$set\": {\"data\": [{\"object\": 1}, {\"object\": 2}]}}",
	"url": "mongodb://localhost:27017",
	"query": "{name: ObjectId({{ message.$.parameters.name }})}",
	"failOnError": false
}

Entrada

{
	"parameters": {
		"name": "NAME"
	}
}

Saída

{{
	"data": {},
	"rowCount": 0,
	"updateCount": 1
}

Operação Delete

Config

{
	"operation": "DELETE",
	"databaseName": "test",
	"collectionName": "model",
	"url": "mongodb://localhost:27017",
	"query": "{_id: ObjectId({{ message.$.parameters.id }})}",
	"failOnError": false
}

Entrada

{
	"parameters": {
		"id": "5c87c7af06c3af7dbedc7bb3"
	}
}

Saída

{
	"data": {},
	"rowCount": 10,
	"updateCount": 0
}

Operação Delete Many

Config

{
	"operation": "DELETE_MANY",
	"databaseName": "test",
	"collectionName": "model",
	"url": "mongodb://localhost:27017",
	"query": "{name: {{ message.$.data.name }}}",
	"failOnError": false
}

Entrada

{
	"data": {
		"name": "NAME"
	}
}

Saída

{
	"data": {},
	"rowCount": 10,
	"updateCount": 0
}

Operação Insert

Config

{
	"operation": "INSERT",
	"databaseName": "test",
	"collectionName": "model",
	"document": "{\"data\": {{ message.$.body }}}",
	"url": "mongodb://localhost:27017",
	"failOnError": false
}

Entrada

{
	"parameters": {
		"id": "5c87c7af06c3af7dbedc7bb3"
	},
	"body": [
		{"a": 1},
		{"a": 2}
	]
}

Saída

{
	"data": {},
	"rowCount": 0,
	"updateCount": 1
}

Operação Insert Many

Config

{
	"operation": "INSERT_MANY",
	"databaseName": "test",
	"collectionName": "model",
	"document": "{{ message.$.body }}",
	"url": "mongodb://localhost:27017",
	"failOnError": false
}

Entrada

{
	"parameters": {
		"id": "5c87c7af06c3af7dbedc7bb3"
	},
	"body": [
		{"a": 1},
		{"a": 2}
	]
}

Saída

{
	"data": {},
	"rowCount": 0,
	"updateCount": 1
}

Operação Aggregate

Config

{
	"operation": "AGGREGATE",
	"databaseName": "test",
	"collectionName": "model",
	"url": "mongodb://localhost:27017",
	"query": "[{\"$match\":{\"zip\":\"90210\"}},{\"$group\":{\"_id\":null,\"count\":{\"$sum\":1}}}]",
	"failOnError": false
}

Entrada

{
	"parameters": {
		"id": "5c87c7af06c3af7dbedc7bb3"
	}
}

Saída

{
	"data": [...some data...],
	"rowCount": 10,
	"updateCount": 0
}

Operação List Indexes

Config

{
	"operation": "LIST_INDEXES",
	"databaseName": "test",
	"collectionName": "model",
	"url": "mongodb://localhost:27017",
	"failOnError": false
}

Entrada

{ }

Saída

{
	"data": [...some data...],
	"rowCount": 10
}

Operação Create Index

Config

{
	"operation": "CREATE_INDEX",
	"databaseName": "test",
	"collectionName": "model",
	"url": "mongodb://localhost:27017",
	"expireAfterSeconds": "3600",
	"query": "{ \"createdAt\": 1 }",
	"failOnError": false
}

Entrada

{ }

Saída

{
	"data": "createdAt_1",
	"updateCount": 1
}

Operação Drop Index

Config

{
	"operation": "DROP_INDEX",
	"databaseName": "test",
	"collectionName": "model",
	"url": "mongodb://localhost:27017",
	"query": "{ \"createdAt\": 1 }",
	"failOnError": false
}

Entrada

{ }

Saída

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

O Mongo DB suporta Double Braces estáticos nos seguintes parâmetros previamente especificados:

  • operation

  • url

Atualizado