public static IEnumerable <CreateIndexModel <AuditEntry> > GetIndexModel(IndexKeysDefinitionBuilder <AuditEntry> builder) { yield return(new CreateIndexModel <AuditEntry>( builder.Combine( builder.Descending(entry => entry.DateValue), builder.Ascending(entry => entry.GroupId), builder.Ascending(entry => entry.DataType) ) )); }
public async void Initialize() { IMongoCollection <UserDocument> collection = DatabaseClient.Instance.MongoDatabase.GetCollection <UserDocument>(CollectionName); IndexKeysDefinitionBuilder <UserDocument> indexBuilder = Builders <UserDocument> .IndexKeys; try { CreateIndexModel <UserDocument> indexModel = new CreateIndexModel <UserDocument>(indexBuilder.Ascending(d => d.Login), new CreateIndexOptions { Name = "UserDocument_unique_Login", Unique = true }); _ = await collection.Indexes.CreateOneAsync(indexModel).ConfigureAwait(false); } catch (MongoWriteConcernException) { } try { CreateIndexModel <UserDocument> indexModel = new CreateIndexModel <UserDocument>(indexBuilder.Ascending(d => d.Id), new CreateIndexOptions { Name = "UserDocument_unique_Id", Unique = true }); _ = await collection.Indexes.CreateOneAsync(indexModel).ConfigureAwait(false); } catch (MongoWriteConcernException) { } try { CreateIndexModel <UserDocument> indexModel = new CreateIndexModel <UserDocument>(indexBuilder.Combine(indexBuilder.Ascending(d => d.Id), indexBuilder.Ascending(d => d.PermissionGroupMembership)), new CreateIndexOptions { Name = "UserDocument_unique_PermissionGroupMembership", Unique = true }); _ = await collection.Indexes.CreateOneAsync(indexModel).ConfigureAwait(false); } catch (MongoWriteConcernException) { } }