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  }