Saltar al contenido principal
Permite realizar consultas SELECT sobre datos almacenados en un servidor remoto de MongoDB.

Sintaxis

mongodb(host:port, database, collection, user, password, structure[, options[, oid_columns]]);
mongodb(uri, collection, structure[, oid_columns]);
mongodb(named_collection_name[, <arg>=<value>...]);

Argumentos

ArgumentoDescripción
host:portDirección del servidor de MongoDB.
databaseNombre de la base de datos remota.
collectionNombre de la colección remota.
userUsuario de MongoDB.
passwordContraseña del usuario.
structureEsquema de la tabla de ClickHouse que devuelve esta función.
optionsOpciones de la cadena de conexión de MongoDB (parámetro opcional).
oid_columnsLista de columnas separadas por comas que deben tratarse como oid en la cláusula WHERE. _id de forma predeterminada.
Si utiliza el servicio en la nube MongoDB Atlas, agregue estas opciones:
'connectTimeoutMS=10000&ssl=true&authSource=admin'
También puede conectarse mediante una URI:
mongodb(uri, collection, structure[, oid_columns])
ArgumentoDescripción
uriCadena de conexión.
collectionNombre de la colección remota.
structureEl esquema de la tabla de ClickHouse que devuelve esta función.
oid_columnsLista de columnas separadas por comas que deben tratarse como oid en la cláusula WHERE. _id de forma predeterminada.
:::
Puede proporcionar los argumentos mediante una colección nombrada:
mongodb(_named_collection_[, host][, port][, database][, collection][, user][, password][, structure][, options][, oid_columns])
-- o
mongodb(_named_collection_[, uri][, structure][, oid_columns])

Valor devuelto

Un objeto de tipo tabla con las mismas columnas que la tabla original de MongoDB.

Ejemplos

Supongamos que tenemos una colección llamada my_collection definida en una base de datos de MongoDB llamada test y que insertamos un par de documentos:
db.createUser({user:"test_user",pwd:"password",roles:[{role:"readWrite",db:"test"}]})

db.createCollection("my_collection")

db.my_collection.insertOne(
    { log_type: "event", host: "120.5.33.9", command: "check-cpu-usage -w 75 -c 90" }
)

db.my_collection.insertOne(
    { log_type: "event", host: "120.5.33.4", command: "system-check"}
)
Consultemos la colección con la función de tabla mongodb:
SELECT * FROM mongodb(
    '127.0.0.1:27017',
    'test',
    'my_collection',
    'test_user',
    'password',
    'log_type String, host String, command String',
    'connectTimeoutMS=10000'
)
o:
SELECT * FROM mongodb(
    'mongodb://test_user:password@127.0.0.1:27017/test?connectionTimeoutMS=10000',
    'my_collection',
    'log_type String, host String, command String'
)
o:
CREATE NAMED COLLECTION mongo_creds AS
       uri='mongodb://test_user:password@127.0.0.1:27017/test?connectionTimeoutMS=10000',
       collection='default_collection';

SELECT * FROM mongodb(
        mongo_creds,
        collection = 'my_collection',
        structure = 'log_type String, host String, command String'
)
Última modificación el 10 de junio de 2026