integration tested index management functionality

This commit is contained in:
alexandre-spieser
2018-10-07 19:05:59 +01:00
parent fd8f98e375
commit 0cf24b1dcf
15 changed files with 1103 additions and 199 deletions
@@ -9,16 +9,13 @@
<PackageReference Include="Microsoft.Extensions.Identity.Stores" Version="2.1.2" /> <PackageReference Include="Microsoft.Extensions.Identity.Stores" Version="2.1.2" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.8.0" /> <PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.8.0" />
<PackageReference Include="MongoDB.Driver" Version="2.7.0" /> <PackageReference Include="MongoDB.Driver" Version="2.7.0" />
<PackageReference Include="MongoDbGenericRepository" Version="1.3.8" />
<PackageReference Include="xunit" Version="2.4.0" /> <PackageReference Include="xunit" Version="2.4.0" />
<PackageReference Include="xunit.runner.console" Version="2.4.0" /> <PackageReference Include="xunit.runner.console" Version="2.4.0" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.0" /> <PackageReference Include="xunit.runner.visualstudio" Version="2.4.0" />
<DotNetCliToolReference Include="dotnet-xunit" Version="2.3.0-beta4-build3742" /> <DotNetCliToolReference Include="dotnet-xunit" Version="2.3.0-beta4-build3742" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<ProjectReference Include="..\MongoDbGenericRepository\MongoDbGenericRepository.csproj" />
</ItemGroup>
<ItemGroup> <ItemGroup>
<Reference Include="System.Configuration"> <Reference Include="System.Configuration">
<HintPath>..\..\..\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\System.Configuration.dll</HintPath> <HintPath>..\..\..\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\System.Configuration.dll</HintPath>
@@ -3,6 +3,7 @@ using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Diagnostics; using System.Diagnostics;
using System.Linq; using System.Linq;
using System.Linq.Expressions;
using System.Runtime.CompilerServices; using System.Runtime.CompilerServices;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
@@ -1053,6 +1054,25 @@ namespace CoreIntegrationTests.Infrastructure
await SUT.DropIndexAsync<T>(expectedIndexName, PartitionKey); await SUT.DropIndexAsync<T>(expectedIndexName, PartitionKey);
} }
[Fact]
public async Task CreateCombinedTextIndexAsync()
{
// Arrange
const string expectedIndexName = "SomeContent2_text_SomeContent3_text";
// Act
Expression <Func<T, object>> ex = x => x.SomeContent2;
Expression <Func<T, object>> ex2 = x => x.SomeContent3;
var result = await SUT.CreateCombinedTextIndexAsync<T>(new[] { ex, ex2 }, null, PartitionKey);
// Assert
var listOfIndexNames = await SUT.GetIndexesNamesAsync<T>(PartitionKey);
Assert.Contains(expectedIndexName, listOfIndexNames);
// Cleanup
await SUT.DropIndexAsync<T>(expectedIndexName, PartitionKey);
}
#endregion Index Management #endregion Index Management
#region Test Utils #region Test Utils
@@ -3,6 +3,7 @@ using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Diagnostics; using System.Diagnostics;
using System.Linq; using System.Linq;
using System.Linq.Expressions;
using System.Runtime.CompilerServices; using System.Runtime.CompilerServices;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
@@ -1046,6 +1047,25 @@ namespace CoreIntegrationTests.Infrastructure
await SUT.DropIndexAsync<T, TKey>(expectedIndexName, PartitionKey); await SUT.DropIndexAsync<T, TKey>(expectedIndexName, PartitionKey);
} }
[Fact]
public async Task CreateCombinedTextIndexAsync()
{
// Arrange
const string expectedIndexName = "SomeContent4_text_SomeContent5_text";
// Act
Expression<Func<T, object>> ex = x => x.SomeContent4;
Expression<Func<T, object>> ex2 = x => x.SomeContent5;
var result = await SUT.CreateCombinedTextIndexAsync<T, TKey>(new[] { ex, ex2 }, null, PartitionKey);
// Assert
var listOfIndexNames = await SUT.GetIndexesNamesAsync<T, TKey>(PartitionKey);
Assert.Contains(expectedIndexName, listOfIndexNames);
// Cleanup
await SUT.DropIndexAsync<T, TKey>(expectedIndexName, PartitionKey);
}
#endregion Index Management #endregion Index Management
#region Test Utils #region Test Utils
@@ -50,6 +50,8 @@ namespace CoreIntegrationTests.Infrastructure
public int SomeValue { get; set; } public int SomeValue { get; set; }
public string SomeContent { get; set; } public string SomeContent { get; set; }
public string SomeContent2 { get; set; }
public string SomeContent3 { get; set; }
public int GroupingKey { get; set; } public int GroupingKey { get; set; }
@@ -78,6 +80,8 @@ namespace CoreIntegrationTests.Infrastructure
} }
public string SomeContent { get; set; } public string SomeContent { get; set; }
public string SomeContent4 { get; set; }
public string SomeContent5 { get; set; }
public Nested Nested { get; set; } public Nested Nested { get; set; }
+7 -7
View File
@@ -31,32 +31,32 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Reference Include="DnsClient, Version=1.0.7.0, Culture=neutral, PublicKeyToken=4574bb5573c51424, processorArchitecture=MSIL"> <Reference Include="DnsClient, Version=1.0.7.0, Culture=neutral, PublicKeyToken=4574bb5573c51424, processorArchitecture=MSIL">
<HintPath>..\packages\MongoDbGenericRepository.1.3.7\lib\net45\DnsClient.dll</HintPath> <HintPath>..\packages\MongoDbGenericRepository.1.3.8\lib\net45\DnsClient.dll</HintPath>
</Reference> </Reference>
<Reference Include="MongoDB.Bson, Version=2.7.0.0, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="MongoDB.Bson, Version=2.7.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\MongoDbGenericRepository.1.3.7\lib\net45\MongoDB.Bson.dll</HintPath> <HintPath>..\packages\MongoDbGenericRepository.1.3.8\lib\net45\MongoDB.Bson.dll</HintPath>
</Reference> </Reference>
<Reference Include="MongoDB.Driver, Version=2.7.0.0, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="MongoDB.Driver, Version=2.7.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\MongoDbGenericRepository.1.3.7\lib\net45\MongoDB.Driver.dll</HintPath> <HintPath>..\packages\MongoDbGenericRepository.1.3.8\lib\net45\MongoDB.Driver.dll</HintPath>
</Reference> </Reference>
<Reference Include="MongoDB.Driver.Core, Version=2.7.0.0, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="MongoDB.Driver.Core, Version=2.7.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\MongoDbGenericRepository.1.3.7\lib\net45\MongoDB.Driver.Core.dll</HintPath> <HintPath>..\packages\MongoDbGenericRepository.1.3.8\lib\net45\MongoDB.Driver.Core.dll</HintPath>
</Reference> </Reference>
<Reference Include="MongoDbGenericRepository, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="MongoDbGenericRepository, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\MongoDbGenericRepository.1.3.7\lib\net45\MongoDbGenericRepository.dll</HintPath> <HintPath>..\packages\MongoDbGenericRepository.1.3.8\lib\net45\MongoDbGenericRepository.dll</HintPath>
</Reference> </Reference>
<Reference Include="nunit.framework, Version=3.9.0.0, Culture=neutral, PublicKeyToken=2638cd05610744eb, processorArchitecture=MSIL"> <Reference Include="nunit.framework, Version=3.9.0.0, Culture=neutral, PublicKeyToken=2638cd05610744eb, processorArchitecture=MSIL">
<HintPath>..\packages\NUnit.3.9.0\lib\net45\nunit.framework.dll</HintPath> <HintPath>..\packages\NUnit.3.9.0\lib\net45\nunit.framework.dll</HintPath>
</Reference> </Reference>
<Reference Include="System" /> <Reference Include="System" />
<Reference Include="System.Buffers, Version=4.0.1.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL"> <Reference Include="System.Buffers, Version=4.0.1.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\MongoDbGenericRepository.1.3.7\lib\net45\System.Buffers.dll</HintPath> <HintPath>..\packages\MongoDbGenericRepository.1.3.8\lib\net45\System.Buffers.dll</HintPath>
</Reference> </Reference>
<Reference Include="System.Configuration" /> <Reference Include="System.Configuration" />
<Reference Include="System.Core" /> <Reference Include="System.Core" />
<Reference Include="Microsoft.CSharp" /> <Reference Include="Microsoft.CSharp" />
<Reference Include="System.Runtime.InteropServices.RuntimeInformation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> <Reference Include="System.Runtime.InteropServices.RuntimeInformation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\MongoDbGenericRepository.1.3.7\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll</HintPath> <HintPath>..\packages\MongoDbGenericRepository.1.3.8\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll</HintPath>
</Reference> </Reference>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
+1 -1
View File
@@ -4,7 +4,7 @@
<package id="MongoDB.Bson" version="2.7.0" targetFramework="net461" /> <package id="MongoDB.Bson" version="2.7.0" targetFramework="net461" />
<package id="MongoDB.Driver" version="2.7.0" targetFramework="net461" /> <package id="MongoDB.Driver" version="2.7.0" targetFramework="net461" />
<package id="MongoDB.Driver.Core" version="2.7.0" targetFramework="net461" /> <package id="MongoDB.Driver.Core" version="2.7.0" targetFramework="net461" />
<package id="MongoDbGenericRepository" version="1.3.7" targetFramework="net461" /> <package id="MongoDbGenericRepository" version="1.3.8" targetFramework="net461" />
<package id="NUnit" version="3.9.0" targetFramework="net461" /> <package id="NUnit" version="3.9.0" targetFramework="net461" />
<package id="NUnit.ConsoleRunner" version="3.7.0" targetFramework="net461" /> <package id="NUnit.ConsoleRunner" version="3.7.0" targetFramework="net461" />
<package id="System.Buffers" version="4.3.0" targetFramework="net461" /> <package id="System.Buffers" version="4.3.0" targetFramework="net461" />
@@ -0,0 +1,193 @@
using MongoDbGenericRepository.Models;
using System;
using System.Collections.Generic;
using System.Linq.Expressions;
using System.Threading.Tasks;
namespace MongoDbGenericRepository
{
/// <summary>
/// The repository interface for managing indexes
/// </summary>
public interface IMongoDbCollectionIndexRepository
{
/// <summary>
/// Create a text index on the given field.
/// IndexCreationOptions can be supplied to further specify
/// how the creation should be done.
/// </summary>
/// <typeparam name="TDocument">The type representing a Document.</typeparam>
/// <param name="field">The field we want to index.</param>
/// <param name="indexCreationOptions">Options for creating an index.</param>
/// <param name="partitionKey">An optional partition key.</param>
/// <returns>The result of the create index operation.</returns>
Task<string> CreateTextIndexAsync<TDocument>(Expression<Func<TDocument, object>> field, IndexCreationOptions indexCreationOptions = null, string partitionKey = null)
where TDocument : IDocument;
/// <summary>
/// Create a text index on the given field.
/// IndexCreationOptions can be supplied to further specify
/// how the creation should be done.
/// </summary>
/// <typeparam name="TDocument">The type representing a Document.</typeparam>
/// <typeparam name="TKey">The type of the primary key for a Document.</typeparam>
/// <param name="field">The field we want to index.</param>
/// <param name="indexCreationOptions">Options for creating an index.</param>
/// <param name="partitionKey">An optional partition key.</param>
/// <returns>The result of the create index operation.</returns>
Task<string> CreateTextIndexAsync<TDocument, TKey>(Expression<Func<TDocument, object>> field, IndexCreationOptions indexCreationOptions = null, string partitionKey = null)
where TDocument : IDocument<TKey>
where TKey : IEquatable<TKey>;
/// <summary>
/// Creates an index on the given field in ascending order.
/// IndexCreationOptions can be supplied to further specify
/// how the creation should be done.
/// </summary>
/// <typeparam name="TDocument">The type representing a Document.</typeparam>
/// <param name="field">The field we want to index.</param>
/// <param name="indexCreationOptions">Options for creating an index.</param>
/// <param name="partitionKey">An optional partition key.</param>
/// <returns>The result of the create index operation.</returns>
Task<string> CreateAscendingIndexAsync<TDocument>(Expression<Func<TDocument, object>> field, IndexCreationOptions indexCreationOptions = null, string partitionKey = null) where TDocument : IDocument;
/// <summary>
/// Creates an index on the given field in ascending order.
/// IndexCreationOptions can be supplied to further specify
/// how the creation should be done.
/// </summary>
/// <typeparam name="TDocument">The type representing a Document.</typeparam>
/// <typeparam name="TKey">The type of the primary key for a Document.</typeparam>
/// <param name="field">The field we want to index.</param>
/// <param name="indexCreationOptions">Options for creating an index.</param>
/// <param name="partitionKey">An optional partition key.</param>
/// <returns>The result of the create index operation.</returns>
Task<string> CreateAscendingIndexAsync<TDocument, TKey>(Expression<Func<TDocument, object>> field, IndexCreationOptions indexCreationOptions = null, string partitionKey = null)
where TDocument : IDocument<TKey>
where TKey : IEquatable<TKey>;
/// <summary>
/// Creates an index on the given field in descending order.
/// IndexCreationOptions can be supplied to further specify
/// how the creation should be done.
/// </summary>
/// <typeparam name="TDocument">The type representing a Document.</typeparam>
/// <param name="field">The field we want to index.</param>
/// <param name="indexCreationOptions">Options for creating an index.</param>
/// <param name="partitionKey">An optional partition key.</param>
/// <returns>A string containing the result of the operation.</returns>
Task<string> CreateDescendingIndexAsync<TDocument>(Expression<Func<TDocument, object>> field, IndexCreationOptions indexCreationOptions = null, string partitionKey = null)
where TDocument : IDocument;
/// <summary>
/// Creates an index on the given field in descending order.
/// IndexCreationOptions can be supplied to further specify
/// how the creation should be done.
/// </summary>
/// <typeparam name="TDocument">The type representing a Document.</typeparam>
/// <typeparam name="TKey">The type of the primary key for a Document.</typeparam>
/// <param name="field">The field we want to index.</param>
/// <param name="indexCreationOptions">Options for creating an index.</param>
/// <param name="partitionKey">An optional partition key.</param>
/// <returns>The result of the create index operation.</returns>
Task<string> CreateDescendingIndexAsync<TDocument, TKey>(Expression<Func<TDocument, object>> field, IndexCreationOptions indexCreationOptions = null, string partitionKey = null)
where TDocument : IDocument<TKey>
where TKey : IEquatable<TKey>;
/// <summary>
/// Creates a hashed index on the given field.
/// IndexCreationOptions can be supplied to further specify
/// how the creation should be done.
/// </summary>
/// <typeparam name="TDocument">The type representing a Document.</typeparam>
/// <param name="field">The field we want to index.</param>
/// <param name="indexCreationOptions">Options for creating an index.</param>
/// <param name="partitionKey">An optional partition key.</param>
/// <returns>A string containing the result of the operation.</returns>
Task<string> CreateHashedIndexAsync<TDocument>(Expression<Func<TDocument, object>> field, IndexCreationOptions indexCreationOptions = null, string partitionKey = null)
where TDocument : IDocument;
/// <summary>
/// Creates a hashed index on the given field.
/// IndexCreationOptions can be supplied to further specify
/// how the creation should be done.
/// </summary>
/// <typeparam name="TDocument">The type representing a Document.</typeparam>
/// <typeparam name="TKey">The type of the primary key for a Document.</typeparam>
/// <param name="field">The field we want to index.</param>
/// <param name="indexCreationOptions">Options for creating an index.</param>
/// <param name="partitionKey">An optional partition key.</param>
/// <returns>The result of the create index operation.</returns>
Task<string> CreateHashedIndexAsync<TDocument, TKey>(Expression<Func<TDocument, object>> field, IndexCreationOptions indexCreationOptions = null, string partitionKey = null)
where TDocument : IDocument<TKey>
where TKey : IEquatable<TKey>;
/// <summary>
/// Creates a combined text index.
/// IndexCreationOptions can be supplied to further specify
/// how the creation should be done.
/// </summary>
/// <typeparam name="TDocument">The type representing a Document.</typeparam>
/// <param name="fields">The fields we want to index.</param>
/// <param name="indexCreationOptions">Options for creating an index.</param>
/// <param name="partitionKey">An optional partition key.</param>
/// <returns>The result of the create index operation.</returns>
Task<string> CreateCombinedTextIndexAsync<TDocument>(IEnumerable<Expression<Func<TDocument, object>>> fields, IndexCreationOptions indexCreationOptions = null, string partitionKey = null)
where TDocument : IDocument;
/// <summary>
/// Creates a combined text index.
/// IndexCreationOptions can be supplied to further specify
/// how the creation should be done.
/// </summary>
/// <typeparam name="TDocument">The type representing a Document.</typeparam>
/// <typeparam name="TKey">The type of the primary key for a Document.</typeparam>
/// <param name="fields">The fields we want to index.</param>
/// <param name="indexCreationOptions">Options for creating an index.</param>
/// <param name="partitionKey">An optional partition key.</param>
/// <returns>The result of the create index operation.</returns>
Task<string> CreateCombinedTextIndexAsync<TDocument, TKey>(IEnumerable<Expression<Func<TDocument, object>>> fields, IndexCreationOptions indexCreationOptions = null, string partitionKey = null)
where TDocument : IDocument<TKey>
where TKey : IEquatable<TKey>;
/// <summary>
/// Drops the index given a field name
/// </summary>
/// <typeparam name="TDocument">The type representing a Document.</typeparam>
/// <param name="indexName">The name of the index</param>
/// <param name="partitionKey">An optional partition key</param>
Task DropIndexAsync<TDocument>(string indexName, string partitionKey = null)
where TDocument : IDocument;
/// <summary>
/// Drops the index given a field name
/// </summary>
/// <typeparam name="TDocument">The type representing a Document.</typeparam>
/// <typeparam name="TKey">The type of the primary key for a Document.</typeparam>
/// <param name="indexName">The name of the index</param>
/// <param name="partitionKey">An optional partition key</param>
Task DropIndexAsync<TDocument, TKey>(string indexName, string partitionKey = null)
where TDocument : IDocument<TKey>
where TKey : IEquatable<TKey>;
/// <summary>
/// Returns the names of the indexes present on a collection.
/// </summary>
/// <typeparam name="TDocument">The type representing a Document.</typeparam>
/// <param name="partitionKey">An optional partition key</param>
/// <returns>A list containing the names of the indexes on on the concerned collection.</returns>
Task<List<string>> GetIndexesNamesAsync<TDocument>(string partitionKey = null)
where TDocument : IDocument;
/// <summary>
/// Returns the names of the indexes present on a collection.
/// </summary>
/// <typeparam name="TDocument">The type representing a Document.</typeparam>
/// <typeparam name="TKey">The type of the primary key for a Document.</typeparam>
/// <param name="partitionKey">An optional partition key</param>
/// <returns>A list containing the names of the indexes on on the concerned collection.</returns>
Task<List<string>> GetIndexesNamesAsync<TDocument, TKey>(string partitionKey = null)
where TDocument : IDocument<TKey>
where TKey : IEquatable<TKey>;
}
}
@@ -8,191 +8,6 @@ using System.Linq;
namespace MongoDbGenericRepository namespace MongoDbGenericRepository
{ {
/// <summary>
/// The repository interface for managing indexes
/// </summary>
public interface IMongoDbCollectionIndexRepository
{
/// <summary>
/// Create a text index on the given field.
/// IndexCreationOptions can be supplied to further specify
/// how the creation should be done.
/// </summary>
/// <typeparam name="TDocument">The type representing a Document.</typeparam>
/// <param name="field">The field we want to index.</param>
/// <param name="indexCreationOptions">Options for creating an index.</param>
/// <param name="partitionKey">An optional partition key.</param>
/// <returns>The result of the create index operation.</returns>
Task<string> CreateTextIndexAsync<TDocument>(Expression<Func<TDocument, object>> field, IndexCreationOptions indexCreationOptions = null, string partitionKey = null)
where TDocument : IDocument;
/// <summary>
/// Create a text index on the given field.
/// IndexCreationOptions can be supplied to further specify
/// how the creation should be done.
/// </summary>
/// <typeparam name="TDocument">The type representing a Document.</typeparam>
/// <typeparam name="TKey">The type of the primary key for a Document.</typeparam>
/// <param name="field">The field we want to index.</param>
/// <param name="indexCreationOptions">Options for creating an index.</param>
/// <param name="partitionKey">An optional partition key.</param>
/// <returns>The result of the create index operation.</returns>
Task<string> CreateTextIndexAsync<TDocument, TKey>(Expression<Func<TDocument, object>> field, IndexCreationOptions indexCreationOptions = null, string partitionKey = null)
where TDocument : IDocument<TKey>
where TKey : IEquatable<TKey>;
/// <summary>
/// Creates an index on the given field in ascending order.
/// IndexCreationOptions can be supplied to further specify
/// how the creation should be done.
/// </summary>
/// <typeparam name="TDocument">The type representing a Document.</typeparam>
/// <param name="field">The field we want to index.</param>
/// <param name="indexCreationOptions">Options for creating an index.</param>
/// <param name="partitionKey">An optional partition key.</param>
/// <returns>The result of the create index operation.</returns>
Task<string> CreateAscendingIndexAsync<TDocument>(Expression<Func<TDocument, object>> field, IndexCreationOptions indexCreationOptions = null, string partitionKey = null) where TDocument : IDocument;
/// <summary>
/// Creates an index on the given field in ascending order.
/// IndexCreationOptions can be supplied to further specify
/// how the creation should be done.
/// </summary>
/// <typeparam name="TDocument">The type representing a Document.</typeparam>
/// <typeparam name="TKey">The type of the primary key for a Document.</typeparam>
/// <param name="field">The field we want to index.</param>
/// <param name="indexCreationOptions">Options for creating an index.</param>
/// <param name="partitionKey">An optional partition key.</param>
/// <returns>The result of the create index operation.</returns>
Task<string> CreateAscendingIndexAsync<TDocument, TKey>(Expression<Func<TDocument, object>> field, IndexCreationOptions indexCreationOptions = null, string partitionKey = null)
where TDocument : IDocument<TKey>
where TKey : IEquatable<TKey>;
/// <summary>
/// Creates an index on the given field in descending order.
/// IndexCreationOptions can be supplied to further specify
/// how the creation should be done.
/// </summary>
/// <typeparam name="TDocument">The type representing a Document.</typeparam>
/// <param name="field">The field we want to index.</param>
/// <param name="indexCreationOptions">Options for creating an index.</param>
/// <param name="partitionKey">An optional partition key.</param>
/// <returns>A string containing the result of the operation.</returns>
Task<string> CreateDescendingIndexAsync<TDocument>(Expression<Func<TDocument, object>> field, IndexCreationOptions indexCreationOptions = null, string partitionKey = null)
where TDocument : IDocument;
/// <summary>
/// Creates an index on the given field in descending order.
/// IndexCreationOptions can be supplied to further specify
/// how the creation should be done.
/// </summary>
/// <typeparam name="TDocument">The type representing a Document.</typeparam>
/// <typeparam name="TKey">The type of the primary key for a Document.</typeparam>
/// <param name="field">The field we want to index.</param>
/// <param name="indexCreationOptions">Options for creating an index.</param>
/// <param name="partitionKey">An optional partition key.</param>
/// <returns>The result of the create index operation.</returns>
Task<string> CreateDescendingIndexAsync<TDocument, TKey>(Expression<Func<TDocument, object>> field, IndexCreationOptions indexCreationOptions = null, string partitionKey = null)
where TDocument : IDocument<TKey>
where TKey : IEquatable<TKey>;
/// <summary>
/// Creates a hashed index on the given field.
/// IndexCreationOptions can be supplied to further specify
/// how the creation should be done.
/// </summary>
/// <typeparam name="TDocument">The type representing a Document.</typeparam>
/// <param name="field">The field we want to index.</param>
/// <param name="indexCreationOptions">Options for creating an index.</param>
/// <param name="partitionKey">An optional partition key.</param>
/// <returns>A string containing the result of the operation.</returns>
Task<string> CreateHashedIndexAsync<TDocument>(Expression<Func<TDocument, object>> field, IndexCreationOptions indexCreationOptions = null, string partitionKey = null)
where TDocument : IDocument;
/// <summary>
/// Creates a hashed index on the given field.
/// IndexCreationOptions can be supplied to further specify
/// how the creation should be done.
/// </summary>
/// <typeparam name="TDocument">The type representing a Document.</typeparam>
/// <typeparam name="TKey">The type of the primary key for a Document.</typeparam>
/// <param name="field">The field we want to index.</param>
/// <param name="indexCreationOptions">Options for creating an index.</param>
/// <param name="partitionKey">An optional partition key.</param>
/// <returns>The result of the create index operation.</returns>
Task<string> CreateHashedIndexAsync<TDocument, TKey>(Expression<Func<TDocument, object>> field, IndexCreationOptions indexCreationOptions = null, string partitionKey = null)
where TDocument : IDocument<TKey>
where TKey : IEquatable<TKey>;
/// <summary>
/// Creates a combined text index.
/// IndexCreationOptions can be supplied to further specify
/// how the creation should be done.
/// </summary>
/// <typeparam name="TDocument">The type representing a Document.</typeparam>
/// <param name="fields">The fields we want to index.</param>
/// <param name="indexCreationOptions">Options for creating an index.</param>
/// <param name="partitionKey">An optional partition key.</param>
/// <returns>The result of the create index operation.</returns>
Task<string> CreateCombinedTextIndexAsync<TDocument>(IEnumerable<Expression<Func<TDocument, object>>> fields, IndexCreationOptions indexCreationOptions = null, string partitionKey = null)
where TDocument : IDocument;
/// <summary>
/// Creates a combined text index.
/// IndexCreationOptions can be supplied to further specify
/// how the creation should be done.
/// </summary>
/// <typeparam name="TDocument">The type representing a Document.</typeparam>
/// <typeparam name="TKey">The type of the primary key for a Document.</typeparam>
/// <param name="fields">The fields we want to index.</param>
/// <param name="indexCreationOptions">Options for creating an index.</param>
/// <param name="partitionKey">An optional partition key.</param>
/// <returns>The result of the create index operation.</returns>
Task<string> CreateCombinedTextIndexAsync<TDocument, TKey>(IEnumerable<Expression<Func<TDocument, object>>> fields, IndexCreationOptions indexCreationOptions = null, string partitionKey = null)
where TDocument : IDocument<TKey>
where TKey : IEquatable<TKey>;
/// <summary>
/// Drops the index given a field name
/// </summary>
/// <typeparam name="TDocument">The type representing a Document.</typeparam>
/// <param name="indexName">The name of the index</param>
/// <param name="partitionKey">An optional partition key</param>
Task DropIndexAsync<TDocument>(string indexName, string partitionKey = null)
where TDocument : IDocument;
/// <summary>
/// Drops the index given a field name
/// </summary>
/// <typeparam name="TDocument">The type representing a Document.</typeparam>
/// <typeparam name="TKey">The type of the primary key for a Document.</typeparam>
/// <param name="indexName">The name of the index</param>
/// <param name="partitionKey">An optional partition key</param>
Task DropIndexAsync<TDocument, TKey>(string indexName, string partitionKey = null)
where TDocument : IDocument<TKey>
where TKey : IEquatable<TKey>;
/// <summary>
/// Returns the names of the indexes present on a collection.
/// </summary>
/// <typeparam name="TDocument">The type representing a Document.</typeparam>
/// <param name="partitionKey">An optional partition key</param>
/// <returns>A list containing the names of the indexes on on the concerned collection.</returns>
Task<List<string>> GetIndexesNamesAsync<TDocument>(string partitionKey = null)
where TDocument : IDocument;
/// <summary>
/// Returns the names of the indexes present on a collection.
/// </summary>
/// <typeparam name="TDocument">The type representing a Document.</typeparam>
/// <typeparam name="TKey">The type of the primary key for a Document.</typeparam>
/// <param name="partitionKey">An optional partition key</param>
/// <returns>A list containing the names of the indexes on on the concerned collection.</returns>
Task<List<string>> GetIndexesNamesAsync<TDocument, TKey>(string partitionKey = null)
where TDocument : IDocument<TKey>
where TKey : IEquatable<TKey>;
}
/// <summary> /// <summary>
/// The base Repository, it is meant to be inherited from by your custom custom MongoRepository implementation. /// The base Repository, it is meant to be inherited from by your custom custom MongoRepository implementation.
/// Its constructor must be given a connection string and a database name. /// Its constructor must be given a connection string and a database name.
@@ -2,7 +2,7 @@
<package > <package >
<metadata> <metadata>
<id>MongoDbGenericRepository</id> <id>MongoDbGenericRepository</id>
<version>1.3.7</version> <version>1.3.8</version>
<title>MongoDb Generic Repository</title> <title>MongoDb Generic Repository</title>
<authors>Alexandre Spieser</authors> <authors>Alexandre Spieser</authors>
<owners>Alexandre Spieser</owners> <owners>Alexandre Spieser</owners>
@@ -10,7 +10,7 @@
<projectUrl>https://github.com/alexandre-spieser/mongodb-generic-repository</projectUrl> <projectUrl>https://github.com/alexandre-spieser/mongodb-generic-repository</projectUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance> <requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>A generic repository implementation using the MongoDB C# Sharp 2.0 driver.</description> <description>A generic repository implementation using the MongoDB C# Sharp 2.0 driver.</description>
<releaseNotes>Upgraded dependencies. Full support for bulk insertion and deletion of documents of the same type but with different partitionkey values. Added methods for Min and Max queries.</releaseNotes> <releaseNotes>Release notes are at https://github.com/alexandre-spieser/mongodb-generic-repository/releases</releaseNotes>
<copyright>Copyright 2018 (c) Alexandre Spieser. All rights reserved.</copyright> <copyright>Copyright 2018 (c) Alexandre Spieser. All rights reserved.</copyright>
<tags>MongoDb Repository Generic NoSql</tags> <tags>MongoDb Repository Generic NoSql</tags>
<dependencies> <dependencies>
@@ -569,6 +569,170 @@
<param name="projection">The projected group result.</param> <param name="projection">The projected group result.</param>
<param name="partitionKey">The partition key of your document, if any.</param> <param name="partitionKey">The partition key of your document, if any.</param>
</member> </member>
<member name="T:MongoDbGenericRepository.IMongoDbCollectionIndexRepository">
<summary>
The repository interface for managing indexes
</summary>
</member>
<member name="M:MongoDbGenericRepository.IMongoDbCollectionIndexRepository.CreateTextIndexAsync``1(System.Linq.Expressions.Expression{System.Func{``0,System.Object}},MongoDbGenericRepository.Models.IndexCreationOptions,System.String)">
<summary>
Create a text index on the given field.
IndexCreationOptions can be supplied to further specify
how the creation should be done.
</summary>
<typeparam name="TDocument">The type representing a Document.</typeparam>
<param name="field">The field we want to index.</param>
<param name="indexCreationOptions">Options for creating an index.</param>
<param name="partitionKey">An optional partition key.</param>
<returns>The result of the create index operation.</returns>
</member>
<member name="M:MongoDbGenericRepository.IMongoDbCollectionIndexRepository.CreateTextIndexAsync``2(System.Linq.Expressions.Expression{System.Func{``0,System.Object}},MongoDbGenericRepository.Models.IndexCreationOptions,System.String)">
<summary>
Create a text index on the given field.
IndexCreationOptions can be supplied to further specify
how the creation should be done.
</summary>
<typeparam name="TDocument">The type representing a Document.</typeparam>
<typeparam name="TKey">The type of the primary key for a Document.</typeparam>
<param name="field">The field we want to index.</param>
<param name="indexCreationOptions">Options for creating an index.</param>
<param name="partitionKey">An optional partition key.</param>
<returns>The result of the create index operation.</returns>
</member>
<member name="M:MongoDbGenericRepository.IMongoDbCollectionIndexRepository.CreateAscendingIndexAsync``1(System.Linq.Expressions.Expression{System.Func{``0,System.Object}},MongoDbGenericRepository.Models.IndexCreationOptions,System.String)">
<summary>
Creates an index on the given field in ascending order.
IndexCreationOptions can be supplied to further specify
how the creation should be done.
</summary>
<typeparam name="TDocument">The type representing a Document.</typeparam>
<param name="field">The field we want to index.</param>
<param name="indexCreationOptions">Options for creating an index.</param>
<param name="partitionKey">An optional partition key.</param>
<returns>The result of the create index operation.</returns>
</member>
<member name="M:MongoDbGenericRepository.IMongoDbCollectionIndexRepository.CreateAscendingIndexAsync``2(System.Linq.Expressions.Expression{System.Func{``0,System.Object}},MongoDbGenericRepository.Models.IndexCreationOptions,System.String)">
<summary>
Creates an index on the given field in ascending order.
IndexCreationOptions can be supplied to further specify
how the creation should be done.
</summary>
<typeparam name="TDocument">The type representing a Document.</typeparam>
<typeparam name="TKey">The type of the primary key for a Document.</typeparam>
<param name="field">The field we want to index.</param>
<param name="indexCreationOptions">Options for creating an index.</param>
<param name="partitionKey">An optional partition key.</param>
<returns>The result of the create index operation.</returns>
</member>
<member name="M:MongoDbGenericRepository.IMongoDbCollectionIndexRepository.CreateDescendingIndexAsync``1(System.Linq.Expressions.Expression{System.Func{``0,System.Object}},MongoDbGenericRepository.Models.IndexCreationOptions,System.String)">
<summary>
Creates an index on the given field in descending order.
IndexCreationOptions can be supplied to further specify
how the creation should be done.
</summary>
<typeparam name="TDocument">The type representing a Document.</typeparam>
<param name="field">The field we want to index.</param>
<param name="indexCreationOptions">Options for creating an index.</param>
<param name="partitionKey">An optional partition key.</param>
<returns>A string containing the result of the operation.</returns>
</member>
<member name="M:MongoDbGenericRepository.IMongoDbCollectionIndexRepository.CreateDescendingIndexAsync``2(System.Linq.Expressions.Expression{System.Func{``0,System.Object}},MongoDbGenericRepository.Models.IndexCreationOptions,System.String)">
<summary>
Creates an index on the given field in descending order.
IndexCreationOptions can be supplied to further specify
how the creation should be done.
</summary>
<typeparam name="TDocument">The type representing a Document.</typeparam>
<typeparam name="TKey">The type of the primary key for a Document.</typeparam>
<param name="field">The field we want to index.</param>
<param name="indexCreationOptions">Options for creating an index.</param>
<param name="partitionKey">An optional partition key.</param>
<returns>The result of the create index operation.</returns>
</member>
<member name="M:MongoDbGenericRepository.IMongoDbCollectionIndexRepository.CreateHashedIndexAsync``1(System.Linq.Expressions.Expression{System.Func{``0,System.Object}},MongoDbGenericRepository.Models.IndexCreationOptions,System.String)">
<summary>
Creates a hashed index on the given field.
IndexCreationOptions can be supplied to further specify
how the creation should be done.
</summary>
<typeparam name="TDocument">The type representing a Document.</typeparam>
<param name="field">The field we want to index.</param>
<param name="indexCreationOptions">Options for creating an index.</param>
<param name="partitionKey">An optional partition key.</param>
<returns>A string containing the result of the operation.</returns>
</member>
<member name="M:MongoDbGenericRepository.IMongoDbCollectionIndexRepository.CreateHashedIndexAsync``2(System.Linq.Expressions.Expression{System.Func{``0,System.Object}},MongoDbGenericRepository.Models.IndexCreationOptions,System.String)">
<summary>
Creates a hashed index on the given field.
IndexCreationOptions can be supplied to further specify
how the creation should be done.
</summary>
<typeparam name="TDocument">The type representing a Document.</typeparam>
<typeparam name="TKey">The type of the primary key for a Document.</typeparam>
<param name="field">The field we want to index.</param>
<param name="indexCreationOptions">Options for creating an index.</param>
<param name="partitionKey">An optional partition key.</param>
<returns>The result of the create index operation.</returns>
</member>
<member name="M:MongoDbGenericRepository.IMongoDbCollectionIndexRepository.CreateCombinedTextIndexAsync``1(System.Collections.Generic.IEnumerable{System.Linq.Expressions.Expression{System.Func{``0,System.Object}}},MongoDbGenericRepository.Models.IndexCreationOptions,System.String)">
<summary>
Creates a combined text index.
IndexCreationOptions can be supplied to further specify
how the creation should be done.
</summary>
<typeparam name="TDocument">The type representing a Document.</typeparam>
<param name="fields">The fields we want to index.</param>
<param name="indexCreationOptions">Options for creating an index.</param>
<param name="partitionKey">An optional partition key.</param>
<returns>The result of the create index operation.</returns>
</member>
<member name="M:MongoDbGenericRepository.IMongoDbCollectionIndexRepository.CreateCombinedTextIndexAsync``2(System.Collections.Generic.IEnumerable{System.Linq.Expressions.Expression{System.Func{``0,System.Object}}},MongoDbGenericRepository.Models.IndexCreationOptions,System.String)">
<summary>
Creates a combined text index.
IndexCreationOptions can be supplied to further specify
how the creation should be done.
</summary>
<typeparam name="TDocument">The type representing a Document.</typeparam>
<typeparam name="TKey">The type of the primary key for a Document.</typeparam>
<param name="fields">The fields we want to index.</param>
<param name="indexCreationOptions">Options for creating an index.</param>
<param name="partitionKey">An optional partition key.</param>
<returns>The result of the create index operation.</returns>
</member>
<member name="M:MongoDbGenericRepository.IMongoDbCollectionIndexRepository.DropIndexAsync``1(System.String,System.String)">
<summary>
Drops the index given a field name
</summary>
<typeparam name="TDocument">The type representing a Document.</typeparam>
<param name="indexName">The name of the index</param>
<param name="partitionKey">An optional partition key</param>
</member>
<member name="M:MongoDbGenericRepository.IMongoDbCollectionIndexRepository.DropIndexAsync``2(System.String,System.String)">
<summary>
Drops the index given a field name
</summary>
<typeparam name="TDocument">The type representing a Document.</typeparam>
<typeparam name="TKey">The type of the primary key for a Document.</typeparam>
<param name="indexName">The name of the index</param>
<param name="partitionKey">An optional partition key</param>
</member>
<member name="M:MongoDbGenericRepository.IMongoDbCollectionIndexRepository.GetIndexesNamesAsync``1(System.String)">
<summary>
Returns the names of the indexes present on a collection.
</summary>
<typeparam name="TDocument">The type representing a Document.</typeparam>
<param name="partitionKey">An optional partition key</param>
<returns>A list containing the names of the indexes on on the concerned collection.</returns>
</member>
<member name="M:MongoDbGenericRepository.IMongoDbCollectionIndexRepository.GetIndexesNamesAsync``2(System.String)">
<summary>
Returns the names of the indexes present on a collection.
</summary>
<typeparam name="TDocument">The type representing a Document.</typeparam>
<typeparam name="TKey">The type of the primary key for a Document.</typeparam>
<param name="partitionKey">An optional partition key</param>
<returns>A list containing the names of the indexes on on the concerned collection.</returns>
</member>
<member name="T:MongoDbGenericRepository.IMongoDbContext"> <member name="T:MongoDbGenericRepository.IMongoDbContext">
<summary> <summary>
This is the interface of the IMongoDbContext which is managed by the <see cref="T:MongoDbGenericRepository.BaseMongoRepository"/>. This is the interface of the IMongoDbContext which is managed by the <see cref="T:MongoDbGenericRepository.BaseMongoRepository"/>.
@@ -989,6 +1153,10 @@
The base Repository, it is meant to be inherited from by your custom custom MongoRepository implementation. The base Repository, it is meant to be inherited from by your custom custom MongoRepository implementation.
Its constructor must be given a connection string and a database name. Its constructor must be given a connection string and a database name.
</summary> </summary>
<summary>
The base Repository, it is meant to be inherited from by your custom custom MongoRepository implementation.
Its constructor must be given a connection string and a database name.
</summary>
</member> </member>
<member name="M:MongoDbGenericRepository.BaseMongoRepository.#ctor(System.String,System.String)"> <member name="M:MongoDbGenericRepository.BaseMongoRepository.#ctor(System.String,System.String)">
<summary> <summary>
@@ -1585,6 +1753,48 @@
<typeparam name="TDocument">The document type.</typeparam> <typeparam name="TDocument">The document type.</typeparam>
<param name="document">The document.</param> <param name="document">The document.</param>
</member> </member>
<member name="M:MongoDbGenericRepository.BaseMongoRepository.CreateTextIndexAsync``1(System.Linq.Expressions.Expression{System.Func{``0,System.Object}},MongoDbGenericRepository.Models.IndexCreationOptions,System.String)">
<inheritdoc />
</member>
<member name="M:MongoDbGenericRepository.BaseMongoRepository.CreateTextIndexAsync``2(System.Linq.Expressions.Expression{System.Func{``0,System.Object}},MongoDbGenericRepository.Models.IndexCreationOptions,System.String)">
<inheritdoc />
</member>
<member name="M:MongoDbGenericRepository.BaseMongoRepository.CreateAscendingIndexAsync``1(System.Linq.Expressions.Expression{System.Func{``0,System.Object}},MongoDbGenericRepository.Models.IndexCreationOptions,System.String)">
<inheritdoc />
</member>
<member name="M:MongoDbGenericRepository.BaseMongoRepository.CreateAscendingIndexAsync``2(System.Linq.Expressions.Expression{System.Func{``0,System.Object}},MongoDbGenericRepository.Models.IndexCreationOptions,System.String)">
<inheritdoc />
</member>
<member name="M:MongoDbGenericRepository.BaseMongoRepository.CreateDescendingIndexAsync``1(System.Linq.Expressions.Expression{System.Func{``0,System.Object}},MongoDbGenericRepository.Models.IndexCreationOptions,System.String)">
<inheritdoc />
</member>
<member name="M:MongoDbGenericRepository.BaseMongoRepository.CreateDescendingIndexAsync``2(System.Linq.Expressions.Expression{System.Func{``0,System.Object}},MongoDbGenericRepository.Models.IndexCreationOptions,System.String)">
<inheritdoc />
</member>
<member name="M:MongoDbGenericRepository.BaseMongoRepository.CreateHashedIndexAsync``1(System.Linq.Expressions.Expression{System.Func{``0,System.Object}},MongoDbGenericRepository.Models.IndexCreationOptions,System.String)">
<inheritdoc />
</member>
<member name="M:MongoDbGenericRepository.BaseMongoRepository.CreateHashedIndexAsync``2(System.Linq.Expressions.Expression{System.Func{``0,System.Object}},MongoDbGenericRepository.Models.IndexCreationOptions,System.String)">
<inheritdoc />
</member>
<member name="M:MongoDbGenericRepository.BaseMongoRepository.CreateCombinedTextIndexAsync``1(System.Collections.Generic.IEnumerable{System.Linq.Expressions.Expression{System.Func{``0,System.Object}}},MongoDbGenericRepository.Models.IndexCreationOptions,System.String)">
<inheritdoc />
</member>
<member name="M:MongoDbGenericRepository.BaseMongoRepository.CreateCombinedTextIndexAsync``2(System.Collections.Generic.IEnumerable{System.Linq.Expressions.Expression{System.Func{``0,System.Object}}},MongoDbGenericRepository.Models.IndexCreationOptions,System.String)">
<inheritdoc />
</member>
<member name="M:MongoDbGenericRepository.BaseMongoRepository.DropIndexAsync``1(System.String,System.String)">
<inheritdoc />
</member>
<member name="M:MongoDbGenericRepository.BaseMongoRepository.DropIndexAsync``2(System.String,System.String)">
<inheritdoc />
</member>
<member name="M:MongoDbGenericRepository.BaseMongoRepository.GetIndexesNamesAsync``1(System.String)">
<inheritdoc />
</member>
<member name="M:MongoDbGenericRepository.BaseMongoRepository.GetIndexesNamesAsync``2(System.String)">
<inheritdoc />
</member>
<member name="T:MongoDbGenericRepository.Models.Document"> <member name="T:MongoDbGenericRepository.Models.Document">
<summary> <summary>
This class represents a basic document that can be stored in MongoDb. This class represents a basic document that can be stored in MongoDb.
@@ -1634,6 +1844,81 @@
Your document must implement this class in order for the MongoDbRepository to handle them. Your document must implement this class in order for the MongoDbRepository to handle them.
</summary> </summary>
</member> </member>
<member name="T:MongoDbGenericRepository.Models.IndexCreationOptions">
<summary>
Options for creating an index.
</summary>
</member>
<member name="P:MongoDbGenericRepository.Models.IndexCreationOptions.Unique">
<summary>
Gets or sets a value indicating whether the index is a unique index.
</summary>
</member>
<member name="P:MongoDbGenericRepository.Models.IndexCreationOptions.TextIndexVersion">
<summary>
Gets or sets the index version for text indexes.
</summary>
</member>
<member name="P:MongoDbGenericRepository.Models.IndexCreationOptions.SphereIndexVersion">
<summary>
Gets or sets the index version for 2dsphere indexes.
</summary>
</member>
<member name="P:MongoDbGenericRepository.Models.IndexCreationOptions.Sparse">
<summary>
Gets or sets a value indicating whether the index is a sparse index.
</summary>
</member>
<member name="P:MongoDbGenericRepository.Models.IndexCreationOptions.Name">
<summary>
Gets or sets the index name.
</summary>
</member>
<member name="P:MongoDbGenericRepository.Models.IndexCreationOptions.Min">
<summary>
Gets or sets the min value for 2d indexes.
</summary>
</member>
<member name="P:MongoDbGenericRepository.Models.IndexCreationOptions.Max">
<summary>
Gets or sets the max value for 2d indexes.
</summary>
</member>
<member name="P:MongoDbGenericRepository.Models.IndexCreationOptions.LanguageOverride">
<summary>
Gets or sets the language override.
</summary>
</member>
<member name="P:MongoDbGenericRepository.Models.IndexCreationOptions.ExpireAfter">
<summary>
Gets or sets when documents expire (used with TTL indexes).
</summary>
</member>
<member name="P:MongoDbGenericRepository.Models.IndexCreationOptions.DefaultLanguage">
<summary>
Gets or sets the default language.
</summary>
</member>
<member name="P:MongoDbGenericRepository.Models.IndexCreationOptions.BucketSize">
<summary>
Gets or sets the size of a geohash bucket.
</summary>
</member>
<member name="P:MongoDbGenericRepository.Models.IndexCreationOptions.Bits">
<summary>
Gets or sets the precision, in bits, used with geohash indexes.
</summary>
</member>
<member name="P:MongoDbGenericRepository.Models.IndexCreationOptions.Background">
<summary>
Gets or sets a value indicating whether to create the index in the background.
</summary>
</member>
<member name="P:MongoDbGenericRepository.Models.IndexCreationOptions.Version">
<summary>
Gets or sets the version of the index.
</summary>
</member>
<member name="T:MongoDbGenericRepository.Models.IPartitionedDocument"> <member name="T:MongoDbGenericRepository.Models.IPartitionedDocument">
<summary> <summary>
This class represents a document that can be inserted in a collection that can be partitioned. This class represents a document that can be inserted in a collection that can be partitioned.
@@ -569,6 +569,170 @@
<param name="projection">The projected group result.</param> <param name="projection">The projected group result.</param>
<param name="partitionKey">The partition key of your document, if any.</param> <param name="partitionKey">The partition key of your document, if any.</param>
</member> </member>
<member name="T:MongoDbGenericRepository.IMongoDbCollectionIndexRepository">
<summary>
The repository interface for managing indexes
</summary>
</member>
<member name="M:MongoDbGenericRepository.IMongoDbCollectionIndexRepository.CreateTextIndexAsync``1(System.Linq.Expressions.Expression{System.Func{``0,System.Object}},MongoDbGenericRepository.Models.IndexCreationOptions,System.String)">
<summary>
Create a text index on the given field.
IndexCreationOptions can be supplied to further specify
how the creation should be done.
</summary>
<typeparam name="TDocument">The type representing a Document.</typeparam>
<param name="field">The field we want to index.</param>
<param name="indexCreationOptions">Options for creating an index.</param>
<param name="partitionKey">An optional partition key.</param>
<returns>The result of the create index operation.</returns>
</member>
<member name="M:MongoDbGenericRepository.IMongoDbCollectionIndexRepository.CreateTextIndexAsync``2(System.Linq.Expressions.Expression{System.Func{``0,System.Object}},MongoDbGenericRepository.Models.IndexCreationOptions,System.String)">
<summary>
Create a text index on the given field.
IndexCreationOptions can be supplied to further specify
how the creation should be done.
</summary>
<typeparam name="TDocument">The type representing a Document.</typeparam>
<typeparam name="TKey">The type of the primary key for a Document.</typeparam>
<param name="field">The field we want to index.</param>
<param name="indexCreationOptions">Options for creating an index.</param>
<param name="partitionKey">An optional partition key.</param>
<returns>The result of the create index operation.</returns>
</member>
<member name="M:MongoDbGenericRepository.IMongoDbCollectionIndexRepository.CreateAscendingIndexAsync``1(System.Linq.Expressions.Expression{System.Func{``0,System.Object}},MongoDbGenericRepository.Models.IndexCreationOptions,System.String)">
<summary>
Creates an index on the given field in ascending order.
IndexCreationOptions can be supplied to further specify
how the creation should be done.
</summary>
<typeparam name="TDocument">The type representing a Document.</typeparam>
<param name="field">The field we want to index.</param>
<param name="indexCreationOptions">Options for creating an index.</param>
<param name="partitionKey">An optional partition key.</param>
<returns>The result of the create index operation.</returns>
</member>
<member name="M:MongoDbGenericRepository.IMongoDbCollectionIndexRepository.CreateAscendingIndexAsync``2(System.Linq.Expressions.Expression{System.Func{``0,System.Object}},MongoDbGenericRepository.Models.IndexCreationOptions,System.String)">
<summary>
Creates an index on the given field in ascending order.
IndexCreationOptions can be supplied to further specify
how the creation should be done.
</summary>
<typeparam name="TDocument">The type representing a Document.</typeparam>
<typeparam name="TKey">The type of the primary key for a Document.</typeparam>
<param name="field">The field we want to index.</param>
<param name="indexCreationOptions">Options for creating an index.</param>
<param name="partitionKey">An optional partition key.</param>
<returns>The result of the create index operation.</returns>
</member>
<member name="M:MongoDbGenericRepository.IMongoDbCollectionIndexRepository.CreateDescendingIndexAsync``1(System.Linq.Expressions.Expression{System.Func{``0,System.Object}},MongoDbGenericRepository.Models.IndexCreationOptions,System.String)">
<summary>
Creates an index on the given field in descending order.
IndexCreationOptions can be supplied to further specify
how the creation should be done.
</summary>
<typeparam name="TDocument">The type representing a Document.</typeparam>
<param name="field">The field we want to index.</param>
<param name="indexCreationOptions">Options for creating an index.</param>
<param name="partitionKey">An optional partition key.</param>
<returns>A string containing the result of the operation.</returns>
</member>
<member name="M:MongoDbGenericRepository.IMongoDbCollectionIndexRepository.CreateDescendingIndexAsync``2(System.Linq.Expressions.Expression{System.Func{``0,System.Object}},MongoDbGenericRepository.Models.IndexCreationOptions,System.String)">
<summary>
Creates an index on the given field in descending order.
IndexCreationOptions can be supplied to further specify
how the creation should be done.
</summary>
<typeparam name="TDocument">The type representing a Document.</typeparam>
<typeparam name="TKey">The type of the primary key for a Document.</typeparam>
<param name="field">The field we want to index.</param>
<param name="indexCreationOptions">Options for creating an index.</param>
<param name="partitionKey">An optional partition key.</param>
<returns>The result of the create index operation.</returns>
</member>
<member name="M:MongoDbGenericRepository.IMongoDbCollectionIndexRepository.CreateHashedIndexAsync``1(System.Linq.Expressions.Expression{System.Func{``0,System.Object}},MongoDbGenericRepository.Models.IndexCreationOptions,System.String)">
<summary>
Creates a hashed index on the given field.
IndexCreationOptions can be supplied to further specify
how the creation should be done.
</summary>
<typeparam name="TDocument">The type representing a Document.</typeparam>
<param name="field">The field we want to index.</param>
<param name="indexCreationOptions">Options for creating an index.</param>
<param name="partitionKey">An optional partition key.</param>
<returns>A string containing the result of the operation.</returns>
</member>
<member name="M:MongoDbGenericRepository.IMongoDbCollectionIndexRepository.CreateHashedIndexAsync``2(System.Linq.Expressions.Expression{System.Func{``0,System.Object}},MongoDbGenericRepository.Models.IndexCreationOptions,System.String)">
<summary>
Creates a hashed index on the given field.
IndexCreationOptions can be supplied to further specify
how the creation should be done.
</summary>
<typeparam name="TDocument">The type representing a Document.</typeparam>
<typeparam name="TKey">The type of the primary key for a Document.</typeparam>
<param name="field">The field we want to index.</param>
<param name="indexCreationOptions">Options for creating an index.</param>
<param name="partitionKey">An optional partition key.</param>
<returns>The result of the create index operation.</returns>
</member>
<member name="M:MongoDbGenericRepository.IMongoDbCollectionIndexRepository.CreateCombinedTextIndexAsync``1(System.Collections.Generic.IEnumerable{System.Linq.Expressions.Expression{System.Func{``0,System.Object}}},MongoDbGenericRepository.Models.IndexCreationOptions,System.String)">
<summary>
Creates a combined text index.
IndexCreationOptions can be supplied to further specify
how the creation should be done.
</summary>
<typeparam name="TDocument">The type representing a Document.</typeparam>
<param name="fields">The fields we want to index.</param>
<param name="indexCreationOptions">Options for creating an index.</param>
<param name="partitionKey">An optional partition key.</param>
<returns>The result of the create index operation.</returns>
</member>
<member name="M:MongoDbGenericRepository.IMongoDbCollectionIndexRepository.CreateCombinedTextIndexAsync``2(System.Collections.Generic.IEnumerable{System.Linq.Expressions.Expression{System.Func{``0,System.Object}}},MongoDbGenericRepository.Models.IndexCreationOptions,System.String)">
<summary>
Creates a combined text index.
IndexCreationOptions can be supplied to further specify
how the creation should be done.
</summary>
<typeparam name="TDocument">The type representing a Document.</typeparam>
<typeparam name="TKey">The type of the primary key for a Document.</typeparam>
<param name="fields">The fields we want to index.</param>
<param name="indexCreationOptions">Options for creating an index.</param>
<param name="partitionKey">An optional partition key.</param>
<returns>The result of the create index operation.</returns>
</member>
<member name="M:MongoDbGenericRepository.IMongoDbCollectionIndexRepository.DropIndexAsync``1(System.String,System.String)">
<summary>
Drops the index given a field name
</summary>
<typeparam name="TDocument">The type representing a Document.</typeparam>
<param name="indexName">The name of the index</param>
<param name="partitionKey">An optional partition key</param>
</member>
<member name="M:MongoDbGenericRepository.IMongoDbCollectionIndexRepository.DropIndexAsync``2(System.String,System.String)">
<summary>
Drops the index given a field name
</summary>
<typeparam name="TDocument">The type representing a Document.</typeparam>
<typeparam name="TKey">The type of the primary key for a Document.</typeparam>
<param name="indexName">The name of the index</param>
<param name="partitionKey">An optional partition key</param>
</member>
<member name="M:MongoDbGenericRepository.IMongoDbCollectionIndexRepository.GetIndexesNamesAsync``1(System.String)">
<summary>
Returns the names of the indexes present on a collection.
</summary>
<typeparam name="TDocument">The type representing a Document.</typeparam>
<param name="partitionKey">An optional partition key</param>
<returns>A list containing the names of the indexes on on the concerned collection.</returns>
</member>
<member name="M:MongoDbGenericRepository.IMongoDbCollectionIndexRepository.GetIndexesNamesAsync``2(System.String)">
<summary>
Returns the names of the indexes present on a collection.
</summary>
<typeparam name="TDocument">The type representing a Document.</typeparam>
<typeparam name="TKey">The type of the primary key for a Document.</typeparam>
<param name="partitionKey">An optional partition key</param>
<returns>A list containing the names of the indexes on on the concerned collection.</returns>
</member>
<member name="T:MongoDbGenericRepository.IMongoDbContext"> <member name="T:MongoDbGenericRepository.IMongoDbContext">
<summary> <summary>
This is the interface of the IMongoDbContext which is managed by the <see cref="T:MongoDbGenericRepository.BaseMongoRepository"/>. This is the interface of the IMongoDbContext which is managed by the <see cref="T:MongoDbGenericRepository.BaseMongoRepository"/>.
@@ -989,6 +1153,10 @@
The base Repository, it is meant to be inherited from by your custom custom MongoRepository implementation. The base Repository, it is meant to be inherited from by your custom custom MongoRepository implementation.
Its constructor must be given a connection string and a database name. Its constructor must be given a connection string and a database name.
</summary> </summary>
<summary>
The base Repository, it is meant to be inherited from by your custom custom MongoRepository implementation.
Its constructor must be given a connection string and a database name.
</summary>
</member> </member>
<member name="M:MongoDbGenericRepository.BaseMongoRepository.#ctor(System.String,System.String)"> <member name="M:MongoDbGenericRepository.BaseMongoRepository.#ctor(System.String,System.String)">
<summary> <summary>
@@ -1585,6 +1753,48 @@
<typeparam name="TDocument">The document type.</typeparam> <typeparam name="TDocument">The document type.</typeparam>
<param name="document">The document.</param> <param name="document">The document.</param>
</member> </member>
<member name="M:MongoDbGenericRepository.BaseMongoRepository.CreateTextIndexAsync``1(System.Linq.Expressions.Expression{System.Func{``0,System.Object}},MongoDbGenericRepository.Models.IndexCreationOptions,System.String)">
<inheritdoc />
</member>
<member name="M:MongoDbGenericRepository.BaseMongoRepository.CreateTextIndexAsync``2(System.Linq.Expressions.Expression{System.Func{``0,System.Object}},MongoDbGenericRepository.Models.IndexCreationOptions,System.String)">
<inheritdoc />
</member>
<member name="M:MongoDbGenericRepository.BaseMongoRepository.CreateAscendingIndexAsync``1(System.Linq.Expressions.Expression{System.Func{``0,System.Object}},MongoDbGenericRepository.Models.IndexCreationOptions,System.String)">
<inheritdoc />
</member>
<member name="M:MongoDbGenericRepository.BaseMongoRepository.CreateAscendingIndexAsync``2(System.Linq.Expressions.Expression{System.Func{``0,System.Object}},MongoDbGenericRepository.Models.IndexCreationOptions,System.String)">
<inheritdoc />
</member>
<member name="M:MongoDbGenericRepository.BaseMongoRepository.CreateDescendingIndexAsync``1(System.Linq.Expressions.Expression{System.Func{``0,System.Object}},MongoDbGenericRepository.Models.IndexCreationOptions,System.String)">
<inheritdoc />
</member>
<member name="M:MongoDbGenericRepository.BaseMongoRepository.CreateDescendingIndexAsync``2(System.Linq.Expressions.Expression{System.Func{``0,System.Object}},MongoDbGenericRepository.Models.IndexCreationOptions,System.String)">
<inheritdoc />
</member>
<member name="M:MongoDbGenericRepository.BaseMongoRepository.CreateHashedIndexAsync``1(System.Linq.Expressions.Expression{System.Func{``0,System.Object}},MongoDbGenericRepository.Models.IndexCreationOptions,System.String)">
<inheritdoc />
</member>
<member name="M:MongoDbGenericRepository.BaseMongoRepository.CreateHashedIndexAsync``2(System.Linq.Expressions.Expression{System.Func{``0,System.Object}},MongoDbGenericRepository.Models.IndexCreationOptions,System.String)">
<inheritdoc />
</member>
<member name="M:MongoDbGenericRepository.BaseMongoRepository.CreateCombinedTextIndexAsync``1(System.Collections.Generic.IEnumerable{System.Linq.Expressions.Expression{System.Func{``0,System.Object}}},MongoDbGenericRepository.Models.IndexCreationOptions,System.String)">
<inheritdoc />
</member>
<member name="M:MongoDbGenericRepository.BaseMongoRepository.CreateCombinedTextIndexAsync``2(System.Collections.Generic.IEnumerable{System.Linq.Expressions.Expression{System.Func{``0,System.Object}}},MongoDbGenericRepository.Models.IndexCreationOptions,System.String)">
<inheritdoc />
</member>
<member name="M:MongoDbGenericRepository.BaseMongoRepository.DropIndexAsync``1(System.String,System.String)">
<inheritdoc />
</member>
<member name="M:MongoDbGenericRepository.BaseMongoRepository.DropIndexAsync``2(System.String,System.String)">
<inheritdoc />
</member>
<member name="M:MongoDbGenericRepository.BaseMongoRepository.GetIndexesNamesAsync``1(System.String)">
<inheritdoc />
</member>
<member name="M:MongoDbGenericRepository.BaseMongoRepository.GetIndexesNamesAsync``2(System.String)">
<inheritdoc />
</member>
<member name="T:MongoDbGenericRepository.Models.Document"> <member name="T:MongoDbGenericRepository.Models.Document">
<summary> <summary>
This class represents a basic document that can be stored in MongoDb. This class represents a basic document that can be stored in MongoDb.
@@ -1634,6 +1844,81 @@
Your document must implement this class in order for the MongoDbRepository to handle them. Your document must implement this class in order for the MongoDbRepository to handle them.
</summary> </summary>
</member> </member>
<member name="T:MongoDbGenericRepository.Models.IndexCreationOptions">
<summary>
Options for creating an index.
</summary>
</member>
<member name="P:MongoDbGenericRepository.Models.IndexCreationOptions.Unique">
<summary>
Gets or sets a value indicating whether the index is a unique index.
</summary>
</member>
<member name="P:MongoDbGenericRepository.Models.IndexCreationOptions.TextIndexVersion">
<summary>
Gets or sets the index version for text indexes.
</summary>
</member>
<member name="P:MongoDbGenericRepository.Models.IndexCreationOptions.SphereIndexVersion">
<summary>
Gets or sets the index version for 2dsphere indexes.
</summary>
</member>
<member name="P:MongoDbGenericRepository.Models.IndexCreationOptions.Sparse">
<summary>
Gets or sets a value indicating whether the index is a sparse index.
</summary>
</member>
<member name="P:MongoDbGenericRepository.Models.IndexCreationOptions.Name">
<summary>
Gets or sets the index name.
</summary>
</member>
<member name="P:MongoDbGenericRepository.Models.IndexCreationOptions.Min">
<summary>
Gets or sets the min value for 2d indexes.
</summary>
</member>
<member name="P:MongoDbGenericRepository.Models.IndexCreationOptions.Max">
<summary>
Gets or sets the max value for 2d indexes.
</summary>
</member>
<member name="P:MongoDbGenericRepository.Models.IndexCreationOptions.LanguageOverride">
<summary>
Gets or sets the language override.
</summary>
</member>
<member name="P:MongoDbGenericRepository.Models.IndexCreationOptions.ExpireAfter">
<summary>
Gets or sets when documents expire (used with TTL indexes).
</summary>
</member>
<member name="P:MongoDbGenericRepository.Models.IndexCreationOptions.DefaultLanguage">
<summary>
Gets or sets the default language.
</summary>
</member>
<member name="P:MongoDbGenericRepository.Models.IndexCreationOptions.BucketSize">
<summary>
Gets or sets the size of a geohash bucket.
</summary>
</member>
<member name="P:MongoDbGenericRepository.Models.IndexCreationOptions.Bits">
<summary>
Gets or sets the precision, in bits, used with geohash indexes.
</summary>
</member>
<member name="P:MongoDbGenericRepository.Models.IndexCreationOptions.Background">
<summary>
Gets or sets a value indicating whether to create the index in the background.
</summary>
</member>
<member name="P:MongoDbGenericRepository.Models.IndexCreationOptions.Version">
<summary>
Gets or sets the version of the index.
</summary>
</member>
<member name="T:MongoDbGenericRepository.Models.IPartitionedDocument"> <member name="T:MongoDbGenericRepository.Models.IPartitionedDocument">
<summary> <summary>
This class represents a document that can be inserted in a collection that can be partitioned. This class represents a document that can be inserted in a collection that can be partitioned.
@@ -569,6 +569,170 @@
<param name="projection">The projected group result.</param> <param name="projection">The projected group result.</param>
<param name="partitionKey">The partition key of your document, if any.</param> <param name="partitionKey">The partition key of your document, if any.</param>
</member> </member>
<member name="T:MongoDbGenericRepository.IMongoDbCollectionIndexRepository">
<summary>
The repository interface for managing indexes
</summary>
</member>
<member name="M:MongoDbGenericRepository.IMongoDbCollectionIndexRepository.CreateTextIndexAsync``1(System.Linq.Expressions.Expression{System.Func{``0,System.Object}},MongoDbGenericRepository.Models.IndexCreationOptions,System.String)">
<summary>
Create a text index on the given field.
IndexCreationOptions can be supplied to further specify
how the creation should be done.
</summary>
<typeparam name="TDocument">The type representing a Document.</typeparam>
<param name="field">The field we want to index.</param>
<param name="indexCreationOptions">Options for creating an index.</param>
<param name="partitionKey">An optional partition key.</param>
<returns>The result of the create index operation.</returns>
</member>
<member name="M:MongoDbGenericRepository.IMongoDbCollectionIndexRepository.CreateTextIndexAsync``2(System.Linq.Expressions.Expression{System.Func{``0,System.Object}},MongoDbGenericRepository.Models.IndexCreationOptions,System.String)">
<summary>
Create a text index on the given field.
IndexCreationOptions can be supplied to further specify
how the creation should be done.
</summary>
<typeparam name="TDocument">The type representing a Document.</typeparam>
<typeparam name="TKey">The type of the primary key for a Document.</typeparam>
<param name="field">The field we want to index.</param>
<param name="indexCreationOptions">Options for creating an index.</param>
<param name="partitionKey">An optional partition key.</param>
<returns>The result of the create index operation.</returns>
</member>
<member name="M:MongoDbGenericRepository.IMongoDbCollectionIndexRepository.CreateAscendingIndexAsync``1(System.Linq.Expressions.Expression{System.Func{``0,System.Object}},MongoDbGenericRepository.Models.IndexCreationOptions,System.String)">
<summary>
Creates an index on the given field in ascending order.
IndexCreationOptions can be supplied to further specify
how the creation should be done.
</summary>
<typeparam name="TDocument">The type representing a Document.</typeparam>
<param name="field">The field we want to index.</param>
<param name="indexCreationOptions">Options for creating an index.</param>
<param name="partitionKey">An optional partition key.</param>
<returns>The result of the create index operation.</returns>
</member>
<member name="M:MongoDbGenericRepository.IMongoDbCollectionIndexRepository.CreateAscendingIndexAsync``2(System.Linq.Expressions.Expression{System.Func{``0,System.Object}},MongoDbGenericRepository.Models.IndexCreationOptions,System.String)">
<summary>
Creates an index on the given field in ascending order.
IndexCreationOptions can be supplied to further specify
how the creation should be done.
</summary>
<typeparam name="TDocument">The type representing a Document.</typeparam>
<typeparam name="TKey">The type of the primary key for a Document.</typeparam>
<param name="field">The field we want to index.</param>
<param name="indexCreationOptions">Options for creating an index.</param>
<param name="partitionKey">An optional partition key.</param>
<returns>The result of the create index operation.</returns>
</member>
<member name="M:MongoDbGenericRepository.IMongoDbCollectionIndexRepository.CreateDescendingIndexAsync``1(System.Linq.Expressions.Expression{System.Func{``0,System.Object}},MongoDbGenericRepository.Models.IndexCreationOptions,System.String)">
<summary>
Creates an index on the given field in descending order.
IndexCreationOptions can be supplied to further specify
how the creation should be done.
</summary>
<typeparam name="TDocument">The type representing a Document.</typeparam>
<param name="field">The field we want to index.</param>
<param name="indexCreationOptions">Options for creating an index.</param>
<param name="partitionKey">An optional partition key.</param>
<returns>A string containing the result of the operation.</returns>
</member>
<member name="M:MongoDbGenericRepository.IMongoDbCollectionIndexRepository.CreateDescendingIndexAsync``2(System.Linq.Expressions.Expression{System.Func{``0,System.Object}},MongoDbGenericRepository.Models.IndexCreationOptions,System.String)">
<summary>
Creates an index on the given field in descending order.
IndexCreationOptions can be supplied to further specify
how the creation should be done.
</summary>
<typeparam name="TDocument">The type representing a Document.</typeparam>
<typeparam name="TKey">The type of the primary key for a Document.</typeparam>
<param name="field">The field we want to index.</param>
<param name="indexCreationOptions">Options for creating an index.</param>
<param name="partitionKey">An optional partition key.</param>
<returns>The result of the create index operation.</returns>
</member>
<member name="M:MongoDbGenericRepository.IMongoDbCollectionIndexRepository.CreateHashedIndexAsync``1(System.Linq.Expressions.Expression{System.Func{``0,System.Object}},MongoDbGenericRepository.Models.IndexCreationOptions,System.String)">
<summary>
Creates a hashed index on the given field.
IndexCreationOptions can be supplied to further specify
how the creation should be done.
</summary>
<typeparam name="TDocument">The type representing a Document.</typeparam>
<param name="field">The field we want to index.</param>
<param name="indexCreationOptions">Options for creating an index.</param>
<param name="partitionKey">An optional partition key.</param>
<returns>A string containing the result of the operation.</returns>
</member>
<member name="M:MongoDbGenericRepository.IMongoDbCollectionIndexRepository.CreateHashedIndexAsync``2(System.Linq.Expressions.Expression{System.Func{``0,System.Object}},MongoDbGenericRepository.Models.IndexCreationOptions,System.String)">
<summary>
Creates a hashed index on the given field.
IndexCreationOptions can be supplied to further specify
how the creation should be done.
</summary>
<typeparam name="TDocument">The type representing a Document.</typeparam>
<typeparam name="TKey">The type of the primary key for a Document.</typeparam>
<param name="field">The field we want to index.</param>
<param name="indexCreationOptions">Options for creating an index.</param>
<param name="partitionKey">An optional partition key.</param>
<returns>The result of the create index operation.</returns>
</member>
<member name="M:MongoDbGenericRepository.IMongoDbCollectionIndexRepository.CreateCombinedTextIndexAsync``1(System.Collections.Generic.IEnumerable{System.Linq.Expressions.Expression{System.Func{``0,System.Object}}},MongoDbGenericRepository.Models.IndexCreationOptions,System.String)">
<summary>
Creates a combined text index.
IndexCreationOptions can be supplied to further specify
how the creation should be done.
</summary>
<typeparam name="TDocument">The type representing a Document.</typeparam>
<param name="fields">The fields we want to index.</param>
<param name="indexCreationOptions">Options for creating an index.</param>
<param name="partitionKey">An optional partition key.</param>
<returns>The result of the create index operation.</returns>
</member>
<member name="M:MongoDbGenericRepository.IMongoDbCollectionIndexRepository.CreateCombinedTextIndexAsync``2(System.Collections.Generic.IEnumerable{System.Linq.Expressions.Expression{System.Func{``0,System.Object}}},MongoDbGenericRepository.Models.IndexCreationOptions,System.String)">
<summary>
Creates a combined text index.
IndexCreationOptions can be supplied to further specify
how the creation should be done.
</summary>
<typeparam name="TDocument">The type representing a Document.</typeparam>
<typeparam name="TKey">The type of the primary key for a Document.</typeparam>
<param name="fields">The fields we want to index.</param>
<param name="indexCreationOptions">Options for creating an index.</param>
<param name="partitionKey">An optional partition key.</param>
<returns>The result of the create index operation.</returns>
</member>
<member name="M:MongoDbGenericRepository.IMongoDbCollectionIndexRepository.DropIndexAsync``1(System.String,System.String)">
<summary>
Drops the index given a field name
</summary>
<typeparam name="TDocument">The type representing a Document.</typeparam>
<param name="indexName">The name of the index</param>
<param name="partitionKey">An optional partition key</param>
</member>
<member name="M:MongoDbGenericRepository.IMongoDbCollectionIndexRepository.DropIndexAsync``2(System.String,System.String)">
<summary>
Drops the index given a field name
</summary>
<typeparam name="TDocument">The type representing a Document.</typeparam>
<typeparam name="TKey">The type of the primary key for a Document.</typeparam>
<param name="indexName">The name of the index</param>
<param name="partitionKey">An optional partition key</param>
</member>
<member name="M:MongoDbGenericRepository.IMongoDbCollectionIndexRepository.GetIndexesNamesAsync``1(System.String)">
<summary>
Returns the names of the indexes present on a collection.
</summary>
<typeparam name="TDocument">The type representing a Document.</typeparam>
<param name="partitionKey">An optional partition key</param>
<returns>A list containing the names of the indexes on on the concerned collection.</returns>
</member>
<member name="M:MongoDbGenericRepository.IMongoDbCollectionIndexRepository.GetIndexesNamesAsync``2(System.String)">
<summary>
Returns the names of the indexes present on a collection.
</summary>
<typeparam name="TDocument">The type representing a Document.</typeparam>
<typeparam name="TKey">The type of the primary key for a Document.</typeparam>
<param name="partitionKey">An optional partition key</param>
<returns>A list containing the names of the indexes on on the concerned collection.</returns>
</member>
<member name="T:MongoDbGenericRepository.IMongoDbContext"> <member name="T:MongoDbGenericRepository.IMongoDbContext">
<summary> <summary>
This is the interface of the IMongoDbContext which is managed by the <see cref="T:MongoDbGenericRepository.BaseMongoRepository"/>. This is the interface of the IMongoDbContext which is managed by the <see cref="T:MongoDbGenericRepository.BaseMongoRepository"/>.
@@ -989,6 +1153,10 @@
The base Repository, it is meant to be inherited from by your custom custom MongoRepository implementation. The base Repository, it is meant to be inherited from by your custom custom MongoRepository implementation.
Its constructor must be given a connection string and a database name. Its constructor must be given a connection string and a database name.
</summary> </summary>
<summary>
The base Repository, it is meant to be inherited from by your custom custom MongoRepository implementation.
Its constructor must be given a connection string and a database name.
</summary>
</member> </member>
<member name="M:MongoDbGenericRepository.BaseMongoRepository.#ctor(System.String,System.String)"> <member name="M:MongoDbGenericRepository.BaseMongoRepository.#ctor(System.String,System.String)">
<summary> <summary>
@@ -1585,6 +1753,48 @@
<typeparam name="TDocument">The document type.</typeparam> <typeparam name="TDocument">The document type.</typeparam>
<param name="document">The document.</param> <param name="document">The document.</param>
</member> </member>
<member name="M:MongoDbGenericRepository.BaseMongoRepository.CreateTextIndexAsync``1(System.Linq.Expressions.Expression{System.Func{``0,System.Object}},MongoDbGenericRepository.Models.IndexCreationOptions,System.String)">
<inheritdoc />
</member>
<member name="M:MongoDbGenericRepository.BaseMongoRepository.CreateTextIndexAsync``2(System.Linq.Expressions.Expression{System.Func{``0,System.Object}},MongoDbGenericRepository.Models.IndexCreationOptions,System.String)">
<inheritdoc />
</member>
<member name="M:MongoDbGenericRepository.BaseMongoRepository.CreateAscendingIndexAsync``1(System.Linq.Expressions.Expression{System.Func{``0,System.Object}},MongoDbGenericRepository.Models.IndexCreationOptions,System.String)">
<inheritdoc />
</member>
<member name="M:MongoDbGenericRepository.BaseMongoRepository.CreateAscendingIndexAsync``2(System.Linq.Expressions.Expression{System.Func{``0,System.Object}},MongoDbGenericRepository.Models.IndexCreationOptions,System.String)">
<inheritdoc />
</member>
<member name="M:MongoDbGenericRepository.BaseMongoRepository.CreateDescendingIndexAsync``1(System.Linq.Expressions.Expression{System.Func{``0,System.Object}},MongoDbGenericRepository.Models.IndexCreationOptions,System.String)">
<inheritdoc />
</member>
<member name="M:MongoDbGenericRepository.BaseMongoRepository.CreateDescendingIndexAsync``2(System.Linq.Expressions.Expression{System.Func{``0,System.Object}},MongoDbGenericRepository.Models.IndexCreationOptions,System.String)">
<inheritdoc />
</member>
<member name="M:MongoDbGenericRepository.BaseMongoRepository.CreateHashedIndexAsync``1(System.Linq.Expressions.Expression{System.Func{``0,System.Object}},MongoDbGenericRepository.Models.IndexCreationOptions,System.String)">
<inheritdoc />
</member>
<member name="M:MongoDbGenericRepository.BaseMongoRepository.CreateHashedIndexAsync``2(System.Linq.Expressions.Expression{System.Func{``0,System.Object}},MongoDbGenericRepository.Models.IndexCreationOptions,System.String)">
<inheritdoc />
</member>
<member name="M:MongoDbGenericRepository.BaseMongoRepository.CreateCombinedTextIndexAsync``1(System.Collections.Generic.IEnumerable{System.Linq.Expressions.Expression{System.Func{``0,System.Object}}},MongoDbGenericRepository.Models.IndexCreationOptions,System.String)">
<inheritdoc />
</member>
<member name="M:MongoDbGenericRepository.BaseMongoRepository.CreateCombinedTextIndexAsync``2(System.Collections.Generic.IEnumerable{System.Linq.Expressions.Expression{System.Func{``0,System.Object}}},MongoDbGenericRepository.Models.IndexCreationOptions,System.String)">
<inheritdoc />
</member>
<member name="M:MongoDbGenericRepository.BaseMongoRepository.DropIndexAsync``1(System.String,System.String)">
<inheritdoc />
</member>
<member name="M:MongoDbGenericRepository.BaseMongoRepository.DropIndexAsync``2(System.String,System.String)">
<inheritdoc />
</member>
<member name="M:MongoDbGenericRepository.BaseMongoRepository.GetIndexesNamesAsync``1(System.String)">
<inheritdoc />
</member>
<member name="M:MongoDbGenericRepository.BaseMongoRepository.GetIndexesNamesAsync``2(System.String)">
<inheritdoc />
</member>
<member name="T:MongoDbGenericRepository.Models.Document"> <member name="T:MongoDbGenericRepository.Models.Document">
<summary> <summary>
This class represents a basic document that can be stored in MongoDb. This class represents a basic document that can be stored in MongoDb.
@@ -1634,6 +1844,81 @@
Your document must implement this class in order for the MongoDbRepository to handle them. Your document must implement this class in order for the MongoDbRepository to handle them.
</summary> </summary>
</member> </member>
<member name="T:MongoDbGenericRepository.Models.IndexCreationOptions">
<summary>
Options for creating an index.
</summary>
</member>
<member name="P:MongoDbGenericRepository.Models.IndexCreationOptions.Unique">
<summary>
Gets or sets a value indicating whether the index is a unique index.
</summary>
</member>
<member name="P:MongoDbGenericRepository.Models.IndexCreationOptions.TextIndexVersion">
<summary>
Gets or sets the index version for text indexes.
</summary>
</member>
<member name="P:MongoDbGenericRepository.Models.IndexCreationOptions.SphereIndexVersion">
<summary>
Gets or sets the index version for 2dsphere indexes.
</summary>
</member>
<member name="P:MongoDbGenericRepository.Models.IndexCreationOptions.Sparse">
<summary>
Gets or sets a value indicating whether the index is a sparse index.
</summary>
</member>
<member name="P:MongoDbGenericRepository.Models.IndexCreationOptions.Name">
<summary>
Gets or sets the index name.
</summary>
</member>
<member name="P:MongoDbGenericRepository.Models.IndexCreationOptions.Min">
<summary>
Gets or sets the min value for 2d indexes.
</summary>
</member>
<member name="P:MongoDbGenericRepository.Models.IndexCreationOptions.Max">
<summary>
Gets or sets the max value for 2d indexes.
</summary>
</member>
<member name="P:MongoDbGenericRepository.Models.IndexCreationOptions.LanguageOverride">
<summary>
Gets or sets the language override.
</summary>
</member>
<member name="P:MongoDbGenericRepository.Models.IndexCreationOptions.ExpireAfter">
<summary>
Gets or sets when documents expire (used with TTL indexes).
</summary>
</member>
<member name="P:MongoDbGenericRepository.Models.IndexCreationOptions.DefaultLanguage">
<summary>
Gets or sets the default language.
</summary>
</member>
<member name="P:MongoDbGenericRepository.Models.IndexCreationOptions.BucketSize">
<summary>
Gets or sets the size of a geohash bucket.
</summary>
</member>
<member name="P:MongoDbGenericRepository.Models.IndexCreationOptions.Bits">
<summary>
Gets or sets the precision, in bits, used with geohash indexes.
</summary>
</member>
<member name="P:MongoDbGenericRepository.Models.IndexCreationOptions.Background">
<summary>
Gets or sets a value indicating whether to create the index in the background.
</summary>
</member>
<member name="P:MongoDbGenericRepository.Models.IndexCreationOptions.Version">
<summary>
Gets or sets the version of the index.
</summary>
</member>
<member name="T:MongoDbGenericRepository.Models.IPartitionedDocument"> <member name="T:MongoDbGenericRepository.Models.IPartitionedDocument">
<summary> <summary>
This class represents a document that can be inserted in a collection that can be partitioned. This class represents a document that can be inserted in a collection that can be partitioned.