Passer au contenu principal
Permet d’exécuter des requêtes SELECT sur des données stockées sur un serveur MongoDB distant.

Syntaxe

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

Arguments

ArgumentDescription
host:portAdresse du serveur MongoDB.
databaseNom de la base de données distante.
collectionNom de la collection distante.
userUtilisateur MongoDB.
passwordMot de passe de l’utilisateur.
structureSchéma de la table ClickHouse renvoyée par cette fonction.
optionsOptions de la chaîne de connexion MongoDB (paramètre facultatif).
oid_columnsListe de colonnes séparées par des virgules à traiter comme oid dans la clause WHERE. _id par défaut.
Si vous utilisez l’offre cloud MongoDB Atlas, ajoutez les options suivantes :
'connectTimeoutMS=10000&ssl=true&authSource=admin'
Vous pouvez également vous connecter à l’aide d’une URI :
mongodb(uri, collection, structure[, oid_columns])
ArgumentDescription
uriChaîne de connexion.
collectionNom de la collection distante.
structureSchéma de la table ClickHouse renvoyée par cette fonction.
oid_columnsListe de colonnes séparées par des virgules à traiter comme oid dans la clause WHERE. _id par défaut.
:::
Vous pouvez passer les arguments à l’aide d’une collection nommée :
mongodb(_named_collection_[, host][, port][, database][, collection][, user][, password][, structure][, options][, oid_columns])
-- or
mongodb(_named_collection_[, uri][, structure][, oid_columns])

Valeur renvoyée

Un objet de table avec les mêmes colonnes que la table MongoDB d’origine.

Exemples

Supposons que nous ayons une collection nommée my_collection dans une base de données MongoDB nommée test, et que nous y insérions quelques documents :
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"}
)
Interrogeons la collection à l’aide de la fonction de table mongodb :
SELECT * FROM mongodb(
    '127.0.0.1:27017',
    'test',
    'my_collection',
    'test_user',
    'password',
    'log_type String, host String, command String',
    'connectTimeoutMS=10000'
)
ou :
SELECT * FROM mongodb(
    'mongodb://test_user:password@127.0.0.1:27017/test?connectionTimeoutMS=10000',
    'my_collection',
    'log_type String, host String, command String'
)
ou :
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'
)
Dernière modification le 25 juin 2026