프로젝트가 mongoDB C# 드라이버 2.2로 업데이트되었습니다. 1.9에서 2.0으로의 변경 사항이 여전히 매우 크다는 것을 알았습니다. 일부 일반적인 작업이 추가 데모 코드와 통합되었습니다.
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); } }
mongoDB C# 드라이버 1.9에서 2.0으로 업데이트되면서 데이터베이스 연결 방법이 단순화되고 찾기, 업데이트, 삭제 인터페이스가 단순화되었으며 그룹화 및 프로젝션 작업도 더 원활해졌습니다.
Builders
위 내용은 MongoDB C# Driver 사용예제(2.2) 내용입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!