Heim > Artikel > Backend-Entwicklung > Beispiel für die Verwendung des MongoDB C#-Treibers (2.2)
Das Projekt wurde auf mongoDB C#-Treiber 2.2 aktualisiert. Es wurde festgestellt, dass die Änderungen von 1.9 auf 2.0 immer noch sehr groß sind. Einige gängige Vorgänge wurden mit zusätzlichem Democode integriert:
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); } }
Das Update des mongoDB C#-Treibers von 1.9 auf 2.0 vereinfacht die Datenbankverbindungsmethode, vereinfacht die Schnittstellen zum Suchen, Aktualisieren und Löschen sowie die Gruppierungs- und Projektionsvorgänge auch glatter.
In Builders8742468051c85b06f0a0af9e3e506b5c sind Aktualisierung, Filter, Projektion und Sortierung integriert, wodurch die Funktionen zusammenhängender werden und das Auffinden von Funktionen erleichtert wird.
Das Obige ist der Inhalt des MongoDB C#-Treiber-Nutzungsbeispiels (2.2). Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!