Descripción
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.
Uso
mongotranslate tiene la siguiente sintaxis:
mongotranslate [--query | --queryFile] <query | queryfile> [options]
Opciones de línea de comandos
--queryEspecifica una consulta SQL para traducirla a una canalización de agregación de MongoDB.
--query--queryFileSe requiere o.
--queryFileEspecifica la ruta a un archivo que contiene una consulta SQL para traducirla a una canalización de agregación de MongoDB.
--query--queryFileSe requiere o.
--schemaObligatorio. Especifica un
.drdlarchivo de esquema o un directorio que contiene uno o más.drdlarchivos de esquema creados por el programa para usar al traducir una consulta SQL a una canalización demongodrdlagregación.
--dbNamePor defecto:
testEl 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
fruity la opción--dbNamepara especificar quefruitestá en la base de datosgroceries:mongotranslate "SELECT * FROM fruit WHERE _id > 100;" \ --schema schema.drdl --dbName groceries Si no utiliza la opción
--dbNamepara especificar una base de datos,mongotranslateasume quefruitestá en la base de datostest. Si el esquema no contiene una base de datos llamadatestni una tabla llamadafruiten la base de datostest,mongotranslatedevuelve 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
--dbNamesi se utiliza.
--explainOpcional. Devuelve la
explainsalida del plan de consulta en lugar de la canalización de agregación traducida. Usar devuelve una--explainsalida similar aEXPLAIN <query>ejecutar en una herramienta de BI conectada a BI Connector.
--formatPor defecto:
multilineOpcional.
nonemultilineLas opciones válidas son y. Lamultilineopción predeterminada muestra los resultados en un formato más legible.Tipo de comandoOpciónDescripciónSin la
--explainopción--format noneDevuelve una secuencia de agregación en una sola línea.
Sin la
--explainopción--format multilineDevuelve una canalización de agregación con una etapa de canalización por línea.
Con la opción
--explain--format noneDevuelve todos los campos en una línea.
Con la opción
--explain--format multilineDevuelve un campo por línea, con formato adicional para matrices y subcampos de objetos.
Ejemplos
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 } ]