Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
Menu Docs

mongotranslate Ferramenta de tradução SQL

mongotranslate é uma ferramenta de aprendizado projetada para ajudar os usuários a entender como as queries SQL podem ser expressas na MongoDB linguagem de agregação. O mecanismo de tradução SQL-para-agregação do BI Connector fornece as traduções, que também podem ser usadas para solucionar problemas específicos de tradução do BI Connector.

mongotranslate é um programa independente. Requer um arquivo drdl gerado mongodrdl por. Não requer mongosqld que ou estejam em execução no momento da mongod execução.

mongotranslate tem a seguinte sintaxe:

mongotranslate [--query | --queryFile] <query | queryfile> [options]
--query

Especifica uma query SQL para traduzir em um pipeline de agregação MongoDB .--query --queryFile É necessário ou.

--queryFile

Especifica um caminho para um arquivo contendo uma query SQL para traduzir em um pipeline de agregação MongoDB .--query --queryFile É necessário ou.

--schema

Obrigatório. Especifica um arquivo de esquema do .drdl ou um diretório contendo um ou mais arquivos de esquema do .drdl criados pelo programa mongodrdl para utilizar ao converter uma query SQL em um pipeline de agregação .

--dbName

Padrão: test

O nome do banco de dados a ser usado para nomes de tabelas não qualificados na query SQL.

O exemplo a seguir usa uma coleção chamada fruit e a opção --dbName para especificar que fruit está no banco de dados groceries:

mongotranslate "SELECT * FROM fruit WHERE _id > 100;" \
--schema schema.drdl --dbName groceries

Se você não utilizar a opção --dbName para especificar um banco de dados, mongotranslate pressupõe que fruit esteja no banco de dados test. Se o esquema não contiver um banco de dados denominado test ou um nome de tabela fruit no banco de dados test, mongotranslate retornará um erro.

O exemplo a seguir utiliza um nome de tabela totalmente qualificado, portanto não precisa da opção --dbName.

mongotranslate "SELECT * FROM groceries.fruit WHERE _id > 100;" \
--schema schema.drdl

Se você especificar um banco de dados de dados com cada nome de tabela em sua query SQL, a opção --dbName será ignorada se for utilizada.

--explain

Opcional. Retorna a saída explain para o plano de consulta em vez do pipeline de agregação traduzido. Usar --explain retorna uma saída semelhante à execução EXPLAIN <query> em uma ferramenta de BI conectada ao BI Connector.

--format

Padrão: multiline

Opcional. As opções válidas são none e multiline. A opção multiline padrão exibe resultados em um formato mais legível.

Tipo de comando
Opção
Descrição

Sem a --explain opção

--format none

Retorna um pipeline de agregação em uma linha.

Sem a --explain opção

--format multiline

Retorna um pipeline de agregação com um estágio de pipeline por linha.

Com a --explain opção

--format none

Retorna todos os campos em uma linha.

Com a --explain opção

--format multiline

Retorna um campo por linha, com formatação adicional para arrays e subcampos de objeto.

--mongoversion

Padrão: latest

Opcional. Retorna um pipeline de agregação compatível com a versão especificada do MongoDB. Os valores aceitáveis são:

  • 3.2

  • 3.4

  • 3.6

  • 4.0

  • latest

O valor padrão é latest.

O exemplo a seguir especifica uma query in-line para tradução:

mongotranslate --query=“select test.name from restaurants where name like 'Brooklyn%'” \
--schema=schema.drdl

O comando anterior retorna estes resultados:

[
{"$match": {"name": {"$regex": "^Brooklyn.*$","$options": "i"}}},
{"$project": {"test_DOT_restaurants_DOT_name": "$name","_id": {"$numberInt":"0"}}},
]

Observação

Para colocar entre aspas uma string dentro do --query parâmetro, use aspas simples. Se você precisar usar aspas duplas ou backtiques em sua query, use a --queryFile opção.

O exemplo a seguir especifica um arquivo de query e retorna um resultado de uma linha:

mongotranslate --queryFile=query.txt --schema=schema.drdl --format=none

O exemplo a seguir utiliza a --explain opção:

mongotranslate --query="select count(name) from restaurants;" \
--schema=schema.drdl --explain

O comando anterior retorna estes resultados:

[
{
"ID": 1,
"StageType": "MongoSourceStage",
"Columns": "[{name: 'count(name)', type: 'int'}]",
"Sources": null,
"Database": {},
"Tables": {},
"Aliases": {},
"Collections": {},
"Pipeline": {},
"PipelineExplain": {},
"PushdownFailures": null
}
]