github.com/Jeffail/benthos/v3@v3.65.0/lib/processor/mongodb.go (about) 1 package processor 2 3 import ( 4 "github.com/Jeffail/benthos/v3/internal/impl/mongodb/client" 5 "github.com/Jeffail/benthos/v3/lib/util/retries" 6 ) 7 8 // MongoDBConfig contains configuration fields for the MongoDB processor. 9 type MongoDBConfig struct { 10 MongoDB client.Config `json:",inline" yaml:",inline"` 11 WriteConcern client.WriteConcern `json:"write_concern" yaml:"write_concern"` 12 13 Parts []int `json:"parts" yaml:"parts"` 14 Operation string `json:"operation" yaml:"operation"` 15 FilterMap string `json:"filter_map" yaml:"filter_map"` 16 DocumentMap string `json:"document_map" yaml:"document_map"` 17 Upsert bool `json:"upsert" yaml:"upsert"` 18 HintMap string `json:"hint_map" yaml:"hint_map"` 19 RetryConfig retries.Config `json:",inline" yaml:",inline"` 20 JSONMarshalMode client.JSONMarshalMode `json:"json_marshal_mode" yaml:"json_marshal_mode"` 21 } 22 23 // NewMongoDBConfig returns a MongoDBConfig with default values. 24 func NewMongoDBConfig() MongoDBConfig { 25 rConf := retries.NewConfig() 26 rConf.MaxRetries = 3 27 rConf.Backoff.InitialInterval = "1s" 28 rConf.Backoff.MaxInterval = "5s" 29 rConf.Backoff.MaxElapsedTime = "30s" 30 31 return MongoDBConfig{ 32 MongoDB: client.NewConfig(), 33 Parts: []int{}, 34 Operation: "insert-one", 35 RetryConfig: rConf, 36 WriteConcern: client.WriteConcern{}, 37 JSONMarshalMode: client.JSONMarshalModeCanonical, 38 } 39 }