You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							80 lines
						
					
					
						
							1.5 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							80 lines
						
					
					
						
							1.5 KiB
						
					
					
				
								package mongodb
							 | 
						|
								
							 | 
						|
								// Config defines the config for storage.
							 | 
						|
								type Config struct {
							 | 
						|
									// Connection string to use for DB. Will override all other authentication values if used
							 | 
						|
									//
							 | 
						|
									// Optional. Default is ""
							 | 
						|
									ConnectionURI string
							 | 
						|
								
							 | 
						|
									// Host name where the DB is hosted
							 | 
						|
									//
							 | 
						|
									// Optional. Default is "127.0.0.1"
							 | 
						|
									Host string
							 | 
						|
								
							 | 
						|
									// Port where the DB is listening on
							 | 
						|
									//
							 | 
						|
									// Optional. Default is 27017
							 | 
						|
									Port int
							 | 
						|
								
							 | 
						|
									// Server username
							 | 
						|
									//
							 | 
						|
									// Optional. Default is ""
							 | 
						|
									Username string
							 | 
						|
								
							 | 
						|
									// Server password
							 | 
						|
									//
							 | 
						|
									// Optional. Default is ""
							 | 
						|
									Password string
							 | 
						|
								
							 | 
						|
									// Database name
							 | 
						|
									//
							 | 
						|
									// Optional. Default is "doutok"
							 | 
						|
									Database string
							 | 
						|
								
							 | 
						|
									// Collection name
							 | 
						|
									//
							 | 
						|
									// Optional. Default is "default"
							 | 
						|
									Collection string
							 | 
						|
								
							 | 
						|
									// Reset clears any existing keys in existing Table
							 | 
						|
									//
							 | 
						|
									// Optional. Default is false
							 | 
						|
									Reset bool
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								// ConfigDefault is the default config
							 | 
						|
								var ConfigDefault = Config{
							 | 
						|
									ConnectionURI: "",
							 | 
						|
									Host:          "127.0.0.1",
							 | 
						|
									Port:          27017,
							 | 
						|
									Database:      "doutok",
							 | 
						|
									Collection:    "default",
							 | 
						|
									Reset:         false,
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								// Helper function to set default values
							 | 
						|
								func configDefault(config ...Config) Config {
							 | 
						|
									// Return default config if nothing provided
							 | 
						|
									if len(config) < 1 {
							 | 
						|
										return ConfigDefault
							 | 
						|
									}
							 | 
						|
								
							 | 
						|
									// Override default config
							 | 
						|
									cfg := config[0]
							 | 
						|
								
							 | 
						|
									// Set default values
							 | 
						|
									if cfg.Host == "" {
							 | 
						|
										cfg.Host = ConfigDefault.Host
							 | 
						|
									}
							 | 
						|
									if cfg.Port <= 0 {
							 | 
						|
										cfg.Port = ConfigDefault.Port
							 | 
						|
									}
							 | 
						|
									if cfg.Database == "" {
							 | 
						|
										cfg.Database = ConfigDefault.Database
							 | 
						|
									}
							 | 
						|
									if cfg.Collection == "" {
							 | 
						|
										cfg.Collection = ConfigDefault.Collection
							 | 
						|
									}
							 | 
						|
									return cfg
							 | 
						|
								}
							 | 
						|
								
							 |