33using MongoDB . Bson . Serialization . Conventions ;
44using MongoDB . Driver ;
55
6- public class LimitSortSkip
6+ public class Distinct
77{
88 // Replace with your connection string
99 private const string MongoConnectionString = "<connection string URI>>" ;
@@ -16,7 +16,7 @@ public static void Main(string[] args)
1616
1717 {
1818 // 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 ( ) ;
2020 foreach ( var result in results )
2121 {
2222 Console . WriteLine ( result ) ;
@@ -26,8 +26,8 @@ public static void Main(string[] args)
2626
2727 {
2828 // 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 ( ) ;
3131 foreach ( var result in results )
3232 {
3333 Console . WriteLine ( result ) ;
@@ -37,15 +37,15 @@ public static void Main(string[] args)
3737
3838 {
3939 // 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" ) ;
4242 var filter = Builders < Restaurant > . Filter . And ( cuisineFilter , boroughFilter ) ;
4343
4444 var options = new DistinctOptions {
4545 Comment = "Find all Italian restaurants in the Bronx"
4646 } ;
4747
48- var results = collection . Distinct < string > ( "name" , filter ) . ToList ( ) ;
48+ var results = collection . Distinct < string > ( r => r . Name , filter ) . ToList ( ) ;
4949 foreach ( var result in results )
5050 {
5151 Console . WriteLine ( result ) ;
@@ -58,38 +58,38 @@ public static void Main(string[] args)
5858 private static async void DistinctAsync ( IMongoCollection < Restaurant > collection )
5959 {
6060 // 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 ) ;
6262 await results . ForEachAsync ( result => Console . WriteLine ( result ) ) ;
6363 // end-distinct-async
6464 }
6565
6666 private static async void DistinctWithQueryAsync ( IMongoCollection < Restaurant > collection )
6767 {
6868 // 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 ) ;
7171 await results . ForEachAsync ( result => Console . WriteLine ( result ) ) ;
7272 // end-distinct-with-query-async
7373 }
7474
7575 private static async void DistinctWithCommentAsync ( IMongoCollection < Restaurant > collection )
7676 {
7777 // 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" ) ;
8080 var filter = Builders < Restaurant > . Filter . And ( cuisineFilter , boroughFilter ) ;
8181
8282 var options = new DistinctOptions {
8383 Comment = "Find all Italian restaurants in the Bronx"
8484 } ;
8585
86- var results = await collection . DistinctAsync < string > ( "name" , filter , options ) ;
86+ var results = await collection . DistinctAsync < string > ( r => r . Name , filter , options ) ;
8787 await results . ForEachAsync ( result => Console . WriteLine ( result ) ) ;
8888 // end-distinct-with-comment-async
8989 }
9090}
9191
92- // start-restaurant-class
92+ // start-model
9393public class Restaurant {
9494 public ObjectId ? Id { get ; set ; }
9595
@@ -102,4 +102,4 @@ public class Restaurant {
102102 [ BsonElement ( "borough" ) ]
103103 public string ? Borough { get ; set ; }
104104}
105- // end-restaurant-class
105+ // end-model
0 commit comments