Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
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 autónomo. Requiere un Archivo drdl generado por mongodrdl, pero no requiere que mongosqld o mongod estén ejecutándose en el momento de la ejecución.

mongotranslate tiene la siguiente sintaxis:

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

Especifica una query SQL para convertir en un pipeline de agregación MongoDB. Se requiere --query o --queryFile.

--queryFile

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

--schema

Obligatorio. Especifica un archivo de esquema .drdl o un directorio que contenga uno o más archivos de esquema .drdl creados por el programa mongodrdl para utilizar cuando se traduzca una query SQL a un pipeline de 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 denominada fruit y la opción --dbName para especificar que fruit se encuentra 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 query SQL, se ignorará 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. Las opciones válidas son none y multiline. La opción multiline por defecto muestra los resultados en un formato más fácilmente legible.

Tipo de comando
Opción
Descripción

Sin la opción --explain

--format none

Devuelve una pipeline de agregación toda en una línea.

Sin la opción --explain

--format multiline

Devuelve un pipeline de agregación con una etapa de pipeline 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 query 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 string dentro del parámetro --query, asegúrese de utilizar comillas simples. Si debe usar comillas dobles o acentos graves en tu consulta, utiliza la opción --queryFile.

El siguiente ejemplo especifica un archivo de query y devuelve un resultado de una sola 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