Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

mongodb

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

Argument Description
host:port Adresse du serveur MongoDB.
database Nom de la base de données distante.
collection Nom de la collection distante.
user Utilisateur MongoDB.
password Mot de passe de l’utilisateur.
structure Schéma de la table ClickHouse renvoyée par cette fonction.
options Options de la chaîne de connexion MongoDB (paramètre facultatif).
oid_columns Liste de colonnes séparées par des virgules à traiter comme oid dans la clause WHERE. _id par défaut.

Vous pouvez également vous connecter à l’aide d’une URI :

mongodb(uri, collection, structure[, oid_columns])
Argument Description
uri Chaîne de connexion.
collection Nom de la collection distante.
structure Schéma de la table ClickHouse renvoyée par cette fonction.
oid_columns Liste 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'
)
Navigation