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 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.
Uso
mongotranslate tiene la siguiente sintaxis:
mongotranslate [--query | --queryFile] <query | queryfile> [options]
Opciones de línea de comandos
--queryEspecifica una query SQL para convertir en un pipeline de agregación MongoDB. Se requiere
--queryo--queryFile.
--queryFileEspecifica una ruta a un archivo que contiene una consulta SQL para traducir a una pipeline de agregación de MongoDB. Se requiere
--queryo--queryFile.
--schemaObligatorio. Especifica un archivo de esquema
.drdlo un directorio que contenga uno o más archivos de esquema.drdlcreados por el programamongodrdlpara utilizar cuando se traduzca una query SQL a un pipeline de agregació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 denominada
fruity la opción--dbNamepara especificar quefruitse encuentra 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 query SQL, se ignorará 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. Las opciones válidas son
noneymultiline. La opciónmultilinepor defecto muestra los resultados en un formato más fácilmente legible.Tipo de comandoOpciónDescripciónSin la opción
--explain--format noneDevuelve una pipeline de agregación toda en una línea.
Sin la opción
--explain--format multilineDevuelve un pipeline de agregación con una etapa de pipeline 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 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 } ]