Docs Menu
Docs Home
/ /

mongotranslate

mongotranslate Es una herramienta de aprendizaje diseñada para ayudar a los usuarios a comprender cómo se expresan las consultas SQL en el lenguaje de agregación de MongoDB. El motor de traducción de SQL a agregación de BI Connector proporciona las traducciones, que también pueden utilizarse para solucionar problemas específicos de traducción de BI Connector.

mongotranslate es un programa independiente. Requiere un Archivodrdl generado por,mongodrdl mongosqld pero no requiere que o estén ejecutándose en el momento mongod de la ejecución.

mongotranslate tiene la siguiente sintaxis:

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

Especifica una consulta SQL para traducirla a una canalización de agregación de MongoDB.--query --queryFile Se requiere o.

--queryFile

Especifica la ruta a un archivo que contiene una consulta SQL para traducirla a una canalización de agregación de MongoDB.--query --queryFile Se requiere o.

--schema

Obligatorio. Especifica un .drdl archivo de esquema o un directorio que contiene uno o más .drdl archivos de esquema creados por el programa para usar al traducir una consulta SQL a una canalización de mongodrdl agregación.

--dbName

Por defecto: test

El nombre de la base de datos que se utilizará para nombres de tabla no calificados en la consulta SQL.

El siguiente ejemplo utiliza una colección llamada fruit y la opción --dbName para especificar que fruit está en la base de datos groceries:

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

Si no utiliza la opción --dbName para especificar una base de datos, mongotranslate asume que fruit está en la base de datos test. Si el esquema no contiene una base de datos llamada test ni una tabla llamada fruit en la base de datos test, mongotranslate devuelve un error.

El siguiente ejemplo utiliza un nombre de tabla completo, por lo que no necesita la opción --dbName.

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

Si especifica una base de datos con cada nombre de tabla en su consulta SQL, se ignora la opción --dbName si se utiliza.

--explain

Opcional. Devuelve la explain salida del plan de consulta en lugar de la canalización de agregación traducida. Usar devuelve una --explain salida similar a EXPLAIN <query> ejecutar en una herramienta de BI conectada a BI Connector.

--format

Por defecto: multiline

Opcional. none multilineLas opciones válidas son y. La multiline opción predeterminada muestra los resultados en un formato más legible.

Tipo de comando
Opción
Descripción

Sin la --explain opción

--format none

Devuelve una secuencia de agregación en una sola línea.

Sin la --explain opción

--format multiline

Devuelve una canalización de agregación con una etapa de canalización por línea.

Con la opción --explain

--format none

Devuelve todos los campos en una línea.

Con la opción --explain

--format multiline

Devuelve un campo por línea, con formato adicional para matrices y subcampos de objetos.

--mongoversion

Por defecto: latest

Opcional. Devuelve una canalización de agregación compatible con la versión de MongoDB especificada. Los valores aceptables incluyen:

  • 3.2

  • 3.4

  • 3.6

  • 4.0

  • latest

El valor por defecto es latest.

El siguiente ejemplo especifica una consulta en línea para la traducción:

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

El comando anterior devuelve los siguientes resultados:

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

Nota

Si necesita citar una cadena dentro del parámetro, asegúrese de usar comillas simples. Si debe usar --query --queryFile comillas dobles o comillas invertidas en su consulta, use la opción.

El siguiente ejemplo especifica un archivo de consulta y devuelve un resultado de una línea:

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

El siguiente ejemplo utiliza la opción --explain:

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

El comando anterior devuelve los siguientes resultados:

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

Volver

mongodrdl

En esta página