diff --git a/apps/emqx_connector/src/emqx_connector_mongo.erl b/apps/emqx_connector/src/emqx_connector_mongo.erl index a3e860740..58ea888a9 100644 --- a/apps/emqx_connector/src/emqx_connector_mongo.erl +++ b/apps/emqx_connector/src/emqx_connector_mongo.erl @@ -34,7 +34,6 @@ , on_jsonify/1 ]). - %% ecpool callback -export([connect/1]). @@ -55,17 +54,21 @@ fields(single) -> [ {mongo_type, #{type => single, default => single}} , {server, fun server/1} + , {w_mode, fun w_mode/1} ] ++ mongo_fields(); fields(rs) -> [ {mongo_type, #{type => rs, default => rs}} , {servers, fun servers/1} + , {w_mode, fun w_mode/1} + , {r_mode, fun r_mode/1} , {replica_set_name, fun replica_set_name/1} ] ++ mongo_fields(); fields(sharded) -> [ {mongo_type, #{type => sharded, default => sharded}} , {servers, fun servers/1} + , {w_mode, fun w_mode/1} ] ++ mongo_fields(); fields(topology) -> [ {pool_size, fun emqx_connector_schema_lib:pool_size/1} @@ -271,6 +274,14 @@ servers(type) -> binary(); servers(validator) -> [?NOT_EMPTY("the value of the field 'servers' cannot be empty")]; servers(_) -> undefined. +w_mode(type) -> hoconsc:enum([unsafe, safe]); +w_mode(default) -> unsafe; +w_mode(_) -> undefined. + +r_mode(type) -> hoconsc:enum([master, slave_ok]); +r_mode(default) -> master; +r_mode(_) -> undefined. + duration(type) -> emqx_schema:duration_ms(); duration(nullable) -> true; duration(_) -> undefined.