Skip to content

Commit 2902e9c

Browse files
committed
CSHARP-1893: Changes from original PR.
1 parent 90e4445 commit 2902e9c

File tree

8 files changed

+139
-132
lines changed

8 files changed

+139
-132
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,5 +166,6 @@ Please see our [guidelines](CONTRIBUTING.md) for contributing to the driver.
166166
* Samir Boulema https://github.com/sboulema
167167
* Dmitry Lukyanov https://github.com/DmitryLukyanov
168168
* Andrea Balducci https://github.com/andreabalducci
169+
* Sergei Lipin https://github.com/prchaoz
169170

170171
If you have contributed and we have neglected to add you to this list please contact one of the maintainers to be added to the list (with apologies).

src/MongoDB.Driver/FilteredMongoCollectionBase.cs

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -201,34 +201,35 @@ protected IMongoCollection<TDocument> WrappedCollection
201201
{
202202
return _wrappedCollection.Distinct(session, field, CombineFilters(filter), options, cancellationToken);
203203
}
204-
public override IAsyncCursor<TItem> Distinct<TField, TItem>(FieldDefinition<TDocument, TField> field, FilterDefinition<TDocument> filter, DistinctOptions options = null, CancellationToken cancellationToken = default)
204+
205+
public override Task<IAsyncCursor<TField>> DistinctAsync<TField>(FieldDefinition<TDocument, TField> field, FilterDefinition<TDocument> filter, DistinctOptions options = null, CancellationToken cancellationToken = default(CancellationToken))
205206
{
206-
return _wrappedCollection.Distinct<TField, TItem>(field, CombineFilters(filter), options, cancellationToken);
207+
return _wrappedCollection.DistinctAsync(field, CombineFilters(filter), options, cancellationToken);
207208
}
208209

209-
public override IAsyncCursor<TItem> Distinct<TField, TItem>(IClientSessionHandle session, FieldDefinition<TDocument, TField> field, FilterDefinition<TDocument> filter, DistinctOptions options = null, CancellationToken cancellationToken = default)
210+
public override Task<IAsyncCursor<TField>> DistinctAsync<TField>(IClientSessionHandle session, FieldDefinition<TDocument, TField> field, FilterDefinition<TDocument> filter, DistinctOptions options = null, CancellationToken cancellationToken = default(CancellationToken))
210211
{
211-
return _wrappedCollection.Distinct<TField, TItem>(session, field, CombineFilters(filter), options, cancellationToken);
212+
return _wrappedCollection.DistinctAsync(session, field, CombineFilters(filter), options, cancellationToken);
212213
}
213214

214-
public override Task<IAsyncCursor<TField>> DistinctAsync<TField>(FieldDefinition<TDocument, TField> field, FilterDefinition<TDocument> filter, DistinctOptions options = null, CancellationToken cancellationToken = default(CancellationToken))
215+
public override IAsyncCursor<TItem> DistinctMany<TItem>(FieldDefinition<TDocument, IEnumerable<TItem>> field, FilterDefinition<TDocument> filter, DistinctOptions options = null, CancellationToken cancellationToken = default)
215216
{
216-
return _wrappedCollection.DistinctAsync(field, CombineFilters(filter), options, cancellationToken);
217+
return _wrappedCollection.DistinctMany(field, CombineFilters(filter), options, cancellationToken);
217218
}
218219

219-
public override Task<IAsyncCursor<TField>> DistinctAsync<TField>(IClientSessionHandle session, FieldDefinition<TDocument, TField> field, FilterDefinition<TDocument> filter, DistinctOptions options = null, CancellationToken cancellationToken = default(CancellationToken))
220+
public override IAsyncCursor<TItem> DistinctMany<TItem>(IClientSessionHandle session, FieldDefinition<TDocument, IEnumerable<TItem>> field, FilterDefinition<TDocument> filter, DistinctOptions options = null, CancellationToken cancellationToken = default)
220221
{
221-
return _wrappedCollection.DistinctAsync(session, field, CombineFilters(filter), options, cancellationToken);
222+
return _wrappedCollection.DistinctMany(session, field, CombineFilters(filter), options, cancellationToken);
222223
}
223224

224-
public override Task<IAsyncCursor<TItem>> DistinctAsync<TField, TItem>(FieldDefinition<TDocument, TField> field, FilterDefinition<TDocument> filter, DistinctOptions options = null, CancellationToken cancellationToken = default)
225+
public override Task<IAsyncCursor<TItem>> DistinctManyAsync<TItem>(FieldDefinition<TDocument, IEnumerable<TItem>> field, FilterDefinition<TDocument> filter, DistinctOptions options = null, CancellationToken cancellationToken = default)
225226
{
226-
return _wrappedCollection.DistinctAsync<TField, TItem>(field, CombineFilters(filter), options, cancellationToken);
227+
return _wrappedCollection.DistinctManyAsync(field, CombineFilters(filter), options, cancellationToken);
227228
}
228229

229-
public override Task<IAsyncCursor<TItem>> DistinctAsync<TField, TItem>(IClientSessionHandle session, FieldDefinition<TDocument, TField> field, FilterDefinition<TDocument> filter, DistinctOptions options = null, CancellationToken cancellationToken = default)
230+
public override Task<IAsyncCursor<TItem>> DistinctManyAsync<TItem>(IClientSessionHandle session, FieldDefinition<TDocument, IEnumerable<TItem>> field, FilterDefinition<TDocument> filter, DistinctOptions options = null, CancellationToken cancellationToken = default)
230231
{
231-
return _wrappedCollection.DistinctAsync<TField, TItem>(session, field, CombineFilters(filter), options, cancellationToken);
232+
return _wrappedCollection.DistinctManyAsync(session, field, CombineFilters(filter), options, cancellationToken);
232233
}
233234

234235
public override long EstimatedDocumentCount(EstimatedDocumentCountOptions options = null, CancellationToken cancellationToken = default(CancellationToken))

src/MongoDB.Driver/IMongoCollection.cs

Lines changed: 22 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -509,83 +509,75 @@ public interface IMongoCollection<TDocument>
509509
IAsyncCursor<TField> Distinct<TField>(IClientSessionHandle session, FieldDefinition<TDocument, TField> field, FilterDefinition<TDocument> filter, DistinctOptions options = null, CancellationToken cancellationToken = default(CancellationToken));
510510

511511
/// <summary>
512-
/// Gets the distinct values for a specified array field.
512+
/// Gets the distinct values for a specified field.
513513
/// </summary>
514-
/// <typeparam name="TField">The type of the field.</typeparam>
515-
/// <typeparam name="TItem">The type of the result.</typeparam>
514+
/// <typeparam name="TField">The type of the result.</typeparam>
516515
/// <param name="field">The field.</param>
517516
/// <param name="filter">The filter.</param>
518517
/// <param name="options">The options.</param>
519518
/// <param name="cancellationToken">The cancellation token.</param>
520-
/// <returns>A cursor.</returns>
521-
IAsyncCursor<TItem> Distinct<TField, TItem>(FieldDefinition<TDocument, TField> field, FilterDefinition<TDocument> filter, DistinctOptions options = null, CancellationToken cancellationToken = default(CancellationToken))
522-
where TField : IEnumerable<TItem>;
519+
/// <returns>A Task whose result is a cursor.</returns>
520+
Task<IAsyncCursor<TField>> DistinctAsync<TField>(FieldDefinition<TDocument, TField> field, FilterDefinition<TDocument> filter, DistinctOptions options = null, CancellationToken cancellationToken = default(CancellationToken));
523521

524522
/// <summary>
525-
/// Gets the distinct values for a specified array field.
523+
/// Gets the distinct values for a specified field.
526524
/// </summary>
527-
/// <typeparam name="TField">The type of the field.</typeparam>
528-
/// <typeparam name="TItem">The type of the result.</typeparam>
525+
/// <typeparam name="TField">The type of the result.</typeparam>
529526
/// <param name="session">The session.</param>
530527
/// <param name="field">The field.</param>
531528
/// <param name="filter">The filter.</param>
532529
/// <param name="options">The options.</param>
533530
/// <param name="cancellationToken">The cancellation token.</param>
534-
/// <returns>A cursor.</returns>
535-
IAsyncCursor<TItem> Distinct<TField, TItem>(IClientSessionHandle session, FieldDefinition<TDocument, TField> field, FilterDefinition<TDocument> filter, DistinctOptions options = null, CancellationToken cancellationToken = default(CancellationToken))
536-
where TField : IEnumerable<TItem>;
531+
/// <returns>
532+
/// A Task whose result is a cursor.
533+
/// </returns>
534+
Task<IAsyncCursor<TField>> DistinctAsync<TField>(IClientSessionHandle session, FieldDefinition<TDocument, TField> field, FilterDefinition<TDocument> filter, DistinctOptions options = null, CancellationToken cancellationToken = default(CancellationToken));
537535

538536
/// <summary>
539-
/// Gets the distinct values for a specified field.
537+
/// Gets the distinct values for a specified array field.
540538
/// </summary>
541-
/// <typeparam name="TField">The type of the result.</typeparam>
539+
/// <typeparam name="TItem">The type of the array items.</typeparam>
542540
/// <param name="field">The field.</param>
543541
/// <param name="filter">The filter.</param>
544542
/// <param name="options">The options.</param>
545543
/// <param name="cancellationToken">The cancellation token.</param>
546-
/// <returns>A Task whose result is a cursor.</returns>
547-
Task<IAsyncCursor<TField>> DistinctAsync<TField>(FieldDefinition<TDocument, TField> field, FilterDefinition<TDocument> filter, DistinctOptions options = null, CancellationToken cancellationToken = default(CancellationToken));
544+
/// <returns>A cursor.</returns>
545+
IAsyncCursor<TItem> DistinctMany<TItem>(FieldDefinition<TDocument, IEnumerable<TItem>> field, FilterDefinition<TDocument> filter, DistinctOptions options = null, CancellationToken cancellationToken = default(CancellationToken));
548546

549547
/// <summary>
550-
/// Gets the distinct values for a specified field.
548+
/// Gets the distinct values for a specified array field.
551549
/// </summary>
552-
/// <typeparam name="TField">The type of the result.</typeparam>
550+
/// <typeparam name="TItem">The type of the array items.</typeparam>
553551
/// <param name="session">The session.</param>
554552
/// <param name="field">The field.</param>
555553
/// <param name="filter">The filter.</param>
556554
/// <param name="options">The options.</param>
557555
/// <param name="cancellationToken">The cancellation token.</param>
558-
/// <returns>
559-
/// A Task whose result is a cursor.
560-
/// </returns>
561-
Task<IAsyncCursor<TField>> DistinctAsync<TField>(IClientSessionHandle session, FieldDefinition<TDocument, TField> field, FilterDefinition<TDocument> filter, DistinctOptions options = null, CancellationToken cancellationToken = default(CancellationToken));
556+
/// <returns>A cursor.</returns>
557+
IAsyncCursor<TItem> DistinctMany<TItem>(IClientSessionHandle session, FieldDefinition<TDocument, IEnumerable<TItem>> field, FilterDefinition<TDocument> filter, DistinctOptions options = null, CancellationToken cancellationToken = default(CancellationToken));
562558

563559
/// <summary>
564560
/// Gets the distinct values for a specified array field.
565561
/// </summary>
566-
/// <typeparam name="TField">The type of the field.</typeparam>
567-
/// <typeparam name="TItem">The type of the result.</typeparam>
562+
/// <typeparam name="TItem">The type of the array items.</typeparam>
568563
/// <param name="field">The field.</param>
569564
/// <param name="filter">The filter.</param>
570565
/// <param name="options">The options.</param>
571566
/// <param name="cancellationToken">The cancellation token.</param>
572567
/// <returns>A cursor.</returns>
573-
Task<IAsyncCursor<TItem>> DistinctAsync<TField, TItem>(FieldDefinition<TDocument, TField> field, FilterDefinition<TDocument> filter, DistinctOptions options = null, CancellationToken cancellationToken = default(CancellationToken))
574-
where TField : IEnumerable<TItem>;
568+
Task<IAsyncCursor<TItem>> DistinctManyAsync<TItem>(FieldDefinition<TDocument, IEnumerable<TItem>> field, FilterDefinition<TDocument> filter, DistinctOptions options = null, CancellationToken cancellationToken = default(CancellationToken));
575569

576570
/// <summary>
577571
/// Gets the distinct values for a specified array field.
578572
/// </summary>
579-
/// <typeparam name="TField">The type of the field.</typeparam>
580-
/// <typeparam name="TItem">The type of the result.</typeparam>
573+
/// <typeparam name="TItem">The type of the array items.</typeparam>
581574
/// <param name="session">The session.</param>
582575
/// <param name="field">The field.</param>
583576
/// <param name="filter">The filter.</param>
584577
/// <param name="options">The options.</param>
585578
/// <param name="cancellationToken">The cancellation token.</param>
586579
/// <returns>A cursor.</returns>
587-
Task<IAsyncCursor<TItem>> DistinctAsync<TField, TItem>(IClientSessionHandle session, FieldDefinition<TDocument, TField> field, FilterDefinition<TDocument> filter, DistinctOptions options = null, CancellationToken cancellationToken = default(CancellationToken))
588-
where TField : IEnumerable<TItem>;
580+
Task<IAsyncCursor<TItem>> DistinctManyAsync<TItem>(IClientSessionHandle session, FieldDefinition<TDocument, IEnumerable<TItem>> field, FilterDefinition<TDocument> filter, DistinctOptions options = null, CancellationToken cancellationToken = default(CancellationToken));
589581

590582
/// <summary>
591583
/// Returns an estimate of the number of documents in the collection.

0 commit comments

Comments
 (0)