/// <summary> /// 使用字符串连接来填充 /// </summary> /// <remarks>http://www.mongodb.org/display/DOCS/Connections</remarks> /// <param name="config"></param> public static String FillConfigWithConnectionString(ref ConfigHelper.MongoConnectionConfig config) { String connectionString = config.ConnectionString; //mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]] try { MongoUrl mongourl = MongoUrl.Create(connectionString); config.DataBaseName = mongourl.DatabaseName; if (mongourl.Username != null) { config.UserName = mongourl.Username; config.Password = mongourl.Password; //config.LoginAsAdmin = mongourl.Admin; } config.Host = mongourl.Server.Host; config.Port = mongourl.Server.Port; config.ReadPreference = mongourl.ReadPreference.ToString(); config.WriteConcern = mongourl.GetWriteConcern(true).ToString(); config.WaitQueueSize = mongourl.WaitQueueSize; config.wtimeoutMS = (int)mongourl.WaitQueueTimeout.TotalMilliseconds; config.IsUseDefaultSetting = false; config.socketTimeoutMS = (int)mongourl.SocketTimeout.TotalMilliseconds; config.connectTimeoutMS = (int)mongourl.ConnectTimeout.TotalMilliseconds; config.ReplSetName = mongourl.ReplicaSetName; foreach (MongoServerAddress item in mongourl.Servers) { config.ReplsetList.Add(item.Host + (item.Port == 0 ? String.Empty : ":" + item.Port)); } return(String.Empty); } catch (FormatException ex) { return(ex.ToString()); } catch (Exception ex) { return(ex.ToString()); } }