示例#1
0
        public MongoStorage(IMongoSettings settings)
        {
            var mongoDataBaseName = settings.GetMongoDataBaseName();

            var mongoClientSettings = new MongoClientSettings
            {
                Servers            = settings.GetMongoServers(),
                WriteConcern       = WriteConcern.W1,
                ReadPreference     = ReadPreference.Primary,
                GuidRepresentation = GuidRepresentation.Standard
            };

            var mongoReplicaSetName = settings.GetMongoReplicaSetName();

            if (!string.IsNullOrEmpty(mongoReplicaSetName))
            {
                mongoClientSettings.ReplicaSetName = mongoReplicaSetName;
            }

            var mongoUserName = settings.GetMongoUserName();

            if (!string.IsNullOrEmpty(mongoUserName))
            {
                mongoClientSettings.Credentials = new[]
                {
                    MongoCredential.CreateCredential(mongoDataBaseName,
                                                     mongoUserName,
                                                     settings.GetMongoPassword())
                };
            }

            var client = new MongoClient(mongoClientSettings);

            database = client.GetDatabase(mongoDataBaseName);
        }