3
3
using MongoDB . Bson . Serialization . Conventions ;
4
4
using MongoDB . Driver ;
5
5
6
- public class LimitSortSkip
6
+ public class Distinct
7
7
{
8
8
// Replace with your connection string
9
9
private const string MongoConnectionString = "<connection string URI>>" ;
@@ -16,7 +16,7 @@ public static void Main(string[] args)
16
16
17
17
{
18
18
// start-distinct
19
- var results = collection . Distinct < string > ( "borough" , new BsonDocument ( ) ) . ToList ( ) ;
19
+ var results = collection . Distinct < string > ( r => r . Borough , Builders < Restaurant > . Filters . Empty ) . ToList ( ) ;
20
20
foreach ( var result in results )
21
21
{
22
22
Console . WriteLine ( result ) ;
@@ -26,8 +26,8 @@ public static void Main(string[] args)
26
26
27
27
{
28
28
// start-distinct-with-query
29
- var filter = Builders < Restaurant > . Filter . Eq ( "cuisine" , "Italian" ) ;
30
- var results = collection . Distinct < string > ( "borough" , filter ) . ToList ( ) ;
29
+ var filter = Builders < Restaurant > . Filter . Eq ( r => r . Cuisine , "Italian" ) ;
30
+ var results = collection . Distinct < string > ( r => r . Borough , filter ) . ToList ( ) ;
31
31
foreach ( var result in results )
32
32
{
33
33
Console . WriteLine ( result ) ;
@@ -37,15 +37,15 @@ public static void Main(string[] args)
37
37
38
38
{
39
39
// start-distinct-with-comment
40
- var cuisineFilter = Builders < Restaurant > . Filter . Eq ( "cuisine" , "Pizza" ) ;
41
- var boroughFilter = Builders < Restaurant > . Filter . Eq ( "borough" , "Bronx" ) ;
40
+ var cuisineFilter = Builders < Restaurant > . Filter . Eq ( r => r . Cuisine , "Pizza" ) ;
41
+ var boroughFilter = Builders < Restaurant > . Filter . Eq ( r => r . Borough , "Bronx" ) ;
42
42
var filter = Builders < Restaurant > . Filter . And ( cuisineFilter , boroughFilter ) ;
43
43
44
44
var options = new DistinctOptions {
45
45
Comment = "Find all Italian restaurants in the Bronx"
46
46
} ;
47
47
48
- var results = collection . Distinct < string > ( "name" , filter ) . ToList ( ) ;
48
+ var results = collection . Distinct < string > ( r => r . Name , filter ) . ToList ( ) ;
49
49
foreach ( var result in results )
50
50
{
51
51
Console . WriteLine ( result ) ;
@@ -58,38 +58,38 @@ public static void Main(string[] args)
58
58
private static async void DistinctAsync ( IMongoCollection < Restaurant > collection )
59
59
{
60
60
// start-distinct-async
61
- var results = await collection . DistinctAsync < string > ( "borough" , new BsonDocument ( ) ) ;
61
+ var results = await collection . DistinctAsync < string > ( r => r . Borough , Builders < Restaurant > . Filters . Empty ) ;
62
62
await results . ForEachAsync ( result => Console . WriteLine ( result ) ) ;
63
63
// end-distinct-async
64
64
}
65
65
66
66
private static async void DistinctWithQueryAsync ( IMongoCollection < Restaurant > collection )
67
67
{
68
68
// start-distinct-with-query-async
69
- var filter = Builders < Restaurant > . Filter . Eq ( "cuisine" , "Italian" ) ;
70
- var results = await collection . DistinctAsync < string > ( "borough" , filter ) ;
69
+ var filter = Builders < Restaurant > . Filter . Eq ( r => r . Cuisine , "Italian" ) ;
70
+ var results = await collection . DistinctAsync < string > ( r => r . Borough , filter ) ;
71
71
await results . ForEachAsync ( result => Console . WriteLine ( result ) ) ;
72
72
// end-distinct-with-query-async
73
73
}
74
74
75
75
private static async void DistinctWithCommentAsync ( IMongoCollection < Restaurant > collection )
76
76
{
77
77
// start-distinct-with-comment-async
78
- var cuisineFilter = Builders < Restaurant > . Filter . Eq ( "cuisine" , "Pizza" ) ;
79
- var boroughFilter = Builders < Restaurant > . Filter . Eq ( "borough" , "Bronx" ) ;
78
+ var cuisineFilter = Builders < Restaurant > . Filter . Eq ( r => r . Cuisine , "Pizza" ) ;
79
+ var boroughFilter = Builders < Restaurant > . Filter . Eq ( r => r . Borough , "Bronx" ) ;
80
80
var filter = Builders < Restaurant > . Filter . And ( cuisineFilter , boroughFilter ) ;
81
81
82
82
var options = new DistinctOptions {
83
83
Comment = "Find all Italian restaurants in the Bronx"
84
84
} ;
85
85
86
- var results = await collection . DistinctAsync < string > ( "name" , filter , options ) ;
86
+ var results = await collection . DistinctAsync < string > ( r => r . Name , filter , options ) ;
87
87
await results . ForEachAsync ( result => Console . WriteLine ( result ) ) ;
88
88
// end-distinct-with-comment-async
89
89
}
90
90
}
91
91
92
- // start-restaurant-class
92
+ // start-model
93
93
public class Restaurant {
94
94
public ObjectId ? Id { get ; set ; }
95
95
@@ -102,4 +102,4 @@ public class Restaurant {
102
102
[ BsonElement ( "borough" ) ]
103
103
public string ? Borough { get ; set ; }
104
104
}
105
- // end-restaurant-class
105
+ // end-model
0 commit comments