public MongoStringPatternProcessorRepository(IOptimizerConfig optimizerConfig, IStringPatternProcessorFactory stringPatternProcessorFactory) { this.stringPatternProcessorFactory = stringPatternProcessorFactory; var client = new MongoClient(optimizerConfig.MongoConnectionString); var server = client.GetServer(); var db = server.GetDatabase(string.Format("{0}-{1}", optimizerConfig.MongoDatabasePrefix, optimizerConfig.InstanceId)); var collectionName = typeof(StringPatternProcessorResult).Name; if (!db.CollectionExists(collectionName)) { var collectionOptions = CollectionOptions.SetCapped(true).SetMaxSize(524288000); db.CreateCollection(collectionName, collectionOptions); } this.stringPatternProcessorCollection = db.GetCollection<StringPatternProcessorResult>(collectionName); var keys = IndexKeys<StringPatternProcessorResult>.Ascending(x => x.GenerationNumber, x => x.PopulationRank); var options = IndexOptions.SetName("GenerationNumber And PopulationRank").SetUnique(true).SetBackground(true); this.stringPatternProcessorCollection.CreateIndex(keys, options); }
public MongoStringPatternProcessorRepository(IOptimizerConfig optimizerConfig, IStringPatternProcessorFactory stringPatternProcessorFactory) { this.stringPatternProcessorFactory = stringPatternProcessorFactory; var client = new MongoClient(optimizerConfig.MongoConnectionString); var server = client.GetServer(); var db = server.GetDatabase(string.Format("{0}-{1}", optimizerConfig.MongoDatabasePrefix, optimizerConfig.InstanceId)); var collectionName = typeof(StringPatternProcessorResult).Name; if (!db.CollectionExists(collectionName)) { var collectionOptions = CollectionOptions.SetCapped(true).SetMaxSize(524288000); db.CreateCollection(collectionName, collectionOptions); } this.stringPatternProcessorCollection = db.GetCollection <StringPatternProcessorResult>(collectionName); var keys = IndexKeys <StringPatternProcessorResult> .Ascending(x => x.GenerationNumber, x => x.PopulationRank); var options = IndexOptions.SetName("GenerationNumber And PopulationRank").SetUnique(true).SetBackground(true); this.stringPatternProcessorCollection.CreateIndex(keys, options); }