Maison > Article > développement back-end > Exemple d'utilisation du pilote MongoDB C# (2.2)
Le projet a été mis à jour vers le pilote mongoDB C# 2.2. On constate que les changements de 1.9 à 2.0 sont encore très importants. Certaines opérations courantes ont été intégrées avec du code de démonstration supplémentaire :
<.>
class Program { const string CollectionName = "video"; static void Main(string[] args) { // remove the demo collection then recreate later db.GetCollection<Video>(CollectionName).Database.DropCollection(CollectionName); var videos = new List<Video> { new Video { Title="The Perfect Developer", Category="SciFi", Minutes=118 }, new Video { Title="Lost In Frankfurt am Main", Category="Horror", Minutes=122 }, new Video { Title="The Infinite Standup", Category="Horror", Minutes=341 } }; Console.WriteLine("Insert Videos ..."); db.GetCollection<Video>(CollectionName).InsertMany(videos); Console.WriteLine("[After insert] All Videos : "); var all = db.GetCollection<Video>(CollectionName).Find(x=>x.Title != string.Empty).ToList(); foreach (var v in all) { Console.WriteLine(v); } Console.WriteLine("Group By..."); var groupby = db.GetCollection<Video>(CollectionName).Aggregate() .Group(x => x.Category, g => new {Name = g.Key, Count = g.Count(), TotalMinutes = g.Sum(x => x.Minutes)}) .ToList(); foreach (var v in groupby) { Console.WriteLine(v.Name + "," + v.Count + "," + v.TotalMinutes); } Console.WriteLine("Updating One [Title = The Perfect Developer]..."); // updating title with "The perfect developer" video's 'title' and 'minute' db.GetCollection<Video>(CollectionName).FindOneAndUpdate(x=>x.Title == "The Perfect Developer", Builders<Video>.Update.Set(x=> x.Title , "A Perfect Developer [updated]") .AddToSet(x => x.Comments, "good video!") .AddToSet(x => x.Comments, "not bad")); Console.WriteLine("[After Updating One] All Videos : "); all = db.GetCollection<Video>(CollectionName).Find(x => x.Title != string.Empty).ToList(); foreach (var v in all) { Console.WriteLine(v); } Console.WriteLine("Deleting One... [Minutes = 122]"); db.GetCollection<Video>(CollectionName).DeleteOne(x => x.Minutes == 122); Console.WriteLine("[After Deleting One] All Videos : "); all = db.GetCollection<Video>(CollectionName).Find(x => x.Title != string.Empty).ToList(); foreach (var v in all) { Console.WriteLine(v); } Console.Read(); } private static IMongoDatabase db { get { var url = new MongoUrl(ConfigurationSettings.AppSettings["mongoUrl"]); var client = new MongoClient(url); return client.GetDatabase(url.DatabaseName); } } } [BsonIgnoreExtraElements] public class Video { public Video() { Comments = new List<string>(); } [BsonId] [BsonRepresentation(BsonType.ObjectId)] public string Id { get; set; } public string Title { get; set; } public string Category { get; set; } public int Minutes { get; set; } public IList<string> Comments { get; set; } public override string ToString() { return string.Format("{0} - {1} - {2}", Title, Category, Minutes); } }
La mise à jour du pilote mongoDB C# de 1.9 à 2.0 simplifie la méthode de connexion à la base de données, simplifie les interfaces de recherche, de mise à jour et de suppression, et les opérations de regroupement et de projection sont aussi plus lisse. Dans Builders8742468051c85b06f0a0af9e3e506b5c, la mise à jour, le filtre, la projection et le tri sont intégrés, ce qui rend les fonctions plus cohérentes et facilite la recherche de fonctions.