ok

alphons <alphons@heijden.com> 2 Sep 2024, 11:53
5d8f1ebe46f8137b08aa6e5b7f2017c24c5085fa
2 files changed
  • src/MongoEfCore/MongoExtensions.cs
  • src/MongoEfCore/Program.cs
diff --git a/src/MongoEfCore/MongoExtensions.cs b/src/MongoEfCore/MongoExtensions.cs
index 2401720..fd5bdf7 100644
--- a/src/MongoEfCore/MongoExtensions.cs
+++ b/src/MongoEfCore/MongoExtensions.cs
@@ -3,30 +3,29 @@
using System.Linq.Expressions;
-namespace MongoEfCore
+namespace MyExtensions;
+
+public static class MongoExtensions
{
- public static class MongoExtensions
+ public static IFindFluent<T, T>? Where<T>(this IMongoCollection<T> collection, Expression<Func<T, bool>> filter)
{
- public static IFindFluent<T, T>? Where<T>(this IMongoCollection<T> collection, Expression<Func<T, bool>> filter)
- {
- return collection.Find(filter);
- }
-
- public static T? FirstOrDefault<T>(this IMongoCollection<T> collection, Expression<Func<T, bool>> filter)
- {
- var results = collection.Find(filter);
-
- return results.FirstOrDefault();
- }
-
- public async static Task<T?> FirsOrDefaultAsync<T>(this IMongoCollection<T> collection, Expression<Func<T, bool>> filter)
- {
- var results = await collection.FindAsync(filter);
-
- if (results == null)
- return default;
- else
- return await results.FirstOrDefaultAsync();
- }
+ return collection.Find(filter);
+ }
+
+ public static T? FirstOrDefault<T>(this IMongoCollection<T> collection, Expression<Func<T, bool>> filter)
+ {
+ var results = collection.Find(filter);
+
+ return results.FirstOrDefault();
+ }
+
+ public async static Task<T?> FirstOrDefaultAsync<T>(this IMongoCollection<T> collection, Expression<Func<T, bool>> filter)
+ {
+ var results = await collection.FindAsync(filter);
+
+ if (results == null)
+ return default;
+ else
+ return await results.FirstOrDefaultAsync();
}
}
diff --git a/src/MongoEfCore/Program.cs b/src/MongoEfCore/Program.cs
index f987215..9328832 100644
--- a/src/MongoEfCore/Program.cs
+++ b/src/MongoEfCore/Program.cs
@@ -1,114 +1,46 @@
-
-using MongoDB.Driver;
-
+using MongoDB.Driver;
using MongoDB.Bson;
+using MyExtensions;
-using System.Diagnostics;
-
-using MongoEfCore;
-
-var connectionString = "mongodb://192.168.28.123:27017";
-
-
-var sw1 = Stopwatch.StartNew();
+var client = new MongoClient("mongodb://192.168.28.123:27017");
-//var settings = MongoClientSettings.FromConnectionString($"{connectionString}");
-
-//settings.ServerSelectionTimeout = TimeSpan.FromSeconds(1);
-
-var dbClient = new MongoClient(connectionString);
-
-if (dbClient == null)
+if (client == null)
return;
-var movies = dbClient.GetDatabase("testdb3").GetCollection<Movie>("cmovies");
-
-if (movies == null)
- return;
+var klanten = client.GetDatabase("dbCrm").GetCollection<Klant>("KlantenTable");
-//var indexKeysDefinition = Builders<Movie>.IndexKeys.Ascending(x => x.Title);
-//await movies.Indexes.CreateOneAsync(new CreateIndexModel<Movie>(indexKeysDefinition));
+var indexKeysDefinition = Builders<Klant>.IndexKeys.Ascending(x => x.Name);
+await klanten.Indexes.CreateOneAsync(new CreateIndexModel<Klant>(indexKeysDefinition));
-//for (int i = 0; i < 10000; i++)
-//{
-// await movies.InsertOneAsync(new Movie()
-// {
-// Title = $"This is movie {i}",
-// Plot = "This plot is unknown",
-// Rated = "1"
-// });
-//}
-
+if (klanten == null)
+ return;
-//var mmm = new Movie()
+//var klant = new Klant()
//{
-// Title = "Unknown",
-// Plot = "This plot is unknown",
-// Rated = "1"
+// Name = "Jochem",
+// Address = "Huizen",
+// Age = 35
//};
-//await movies.InsertOneAsync(mmm);
-
-
-movies.FirstOrDefault(x => x.Id == ObjectId.Parse("66d5653d643b92e1eb73b087"));
-
-sw1.Restart();
-
-var aaa1 = movies.FirstOrDefault(x => x.Id == ObjectId.Parse("66d5653d643b92e1eb73b087"));
-
-Console.WriteLine($"{sw1.ElapsedMilliseconds}mS");
-
-sw1.Restart();
+//await klanten.InsertOneAsync(klant);
-var aaa2 = await movies.Where(x => x.Id == ObjectId.Parse("66d5653d643b92e1eb73b087")).FirstOrDefaultAsync();
-Console.WriteLine($"{sw1.ElapsedMilliseconds}mS");
+var wie = klanten.FirstOrDefault(x => x.Name == "Jochem");
-sw1.Restart();
+if(wie == null) return;
-var aaa3 = movies.Where(x => x.Id == ObjectId.Parse("66d5653d643b92e1eb73b087")).FirstOrDefault();
+Console.WriteLine($"Het {wie.Address}");
-Console.WriteLine($"Sync {sw1.ElapsedMilliseconds}mS");
-var aaa4 = await movies.FirsOrDefaultAsync(x => x.Id == ObjectId.Parse("66d5653d643b92e1eb73b087"));
-Console.WriteLine($"{sw1.ElapsedMilliseconds}mS");
-
-sw1.Restart();
-
-var aaa5 = movies.FirstOrDefault(x => x.Title == "This is movie 5432");
-
-Console.WriteLine($"{sw1.ElapsedMilliseconds}mS");
-
-sw1.Restart();
-
-var a = await movies.CountDocumentsAsync(x => x.Title == "Unknown");
-
-Console.WriteLine($"{sw1.ElapsedMilliseconds}mS");
-
-
-//for (int i = 0; i < 1000; i++)
-//{
-// await movies.FirsOrDefaultAsync(x => x.Id == ObjectId.Parse("66d5653d643b92e1eb73b087"));
-//}
-
-
-var movie1 = await movies.FirsOrDefaultAsync(x => x.Id == ObjectId.Parse("66d5653d643b92e1eb73b087"));
-
-if(movie1 != null)
- Console.WriteLine($"{sw1.ElapsedMilliseconds}mS {movie1.Title}");
-
-
-
-
-class Movie
+class Klant
{
public ObjectId Id { get; set; }
+ public string? Name { get; set; }
- public string? Title { get; set; }
+ public string? Address { get; set; }
- public string? Rated { get; set; }
-
- public string? Plot { get; set; }
+ public int Age { get; set; }
}
+