در این مقاله، من قصد دارم نحوه ایجاد یک برنامه بسیار ساده Microsoft .NET Core - Console را با استفاده از NoSQL - MongoDB در back-end نشان دهم. من فرض می کنم، شما درک کمی در مورد اتصال چارچوب دات نت با هر RDBMS دارید.
پيش نياز
- برای کار با برنامه، باید ویژوال استودیو 2015 را با به روز رسانی 3 داشته باشید تا دات نت داشته باشید (انگیزه من این است که یک ابزار کاربردی با .NET Core به شما نشان دهم، اما می توانید با هر نسخه ای از ویژوال استودیو ادامه دهید).
- شما باید NoSQL Database Server MongoDB را نصب کنید. می توانید آن را در اینجا پیدا کنید .
- این مرحله اجباری نیست، اما خوب است که برای مدیریت سرور MongoDB یک برنامه سازگار با رابط کاربری گرافیکی داشته باشید. یکی از بسیاری از ابزارهایی که می توانید دانلود و نصب کنید Mongobooster [https://mongobooster.com/] -> دانلود است. در غیر این صورت، می توانید از خط فرمان نیز کار کنید. من از قطعات هر دو استفاده خواهم کرد.
نمایش
شما می توانید این برنامه گام به گام را در 8 مرحله تکمیل کنید. من سعی کردم به برخی از مراحل اشکال زدایی در فرآیند پاسخ دهم. با این حال، اگر مشکلی پیدا کردید، لطفاً در بخش نظرات ارسال کنید.
- یک پوشه با نام "data" در C: drive و "db" در پوشه "data" ایجاد کنید. این باعث حفظ پایگاه داده شما خواهد شد. به عنوان مثال - C:\data
- اکنون، شما باید نمونه MongoDb را راه اندازی کنید. برای انجام این کار، به C:\Program Files\MongoDB\Server\3.2\bin بروید (من فرض میکنم نمونه پیشفرض MongoDb را نصب کرده یا فقط دانلود کردهاید). bin آن را در خط فرمان باز کنید، مثلاً cd C:\Program Files\MongoDB\Server\3.2\bin . اگر نسخه 3.4 دارید، مسیر شما به عنوان مثال cd C:\Program Files\MongoDB\Server\3.4\bin و غیره خواهد بود.
اکنون mongod.exe را با پارامتر --dbpath اجرا کنید. مثال - C:\Program Files\MongoDB\Server\3.2\bin>mongod.exe --dbpath C:\data\db
توجه - همچنین می توانید یک سرویس Windows برای کار فوق ایجاد کنید تا دفعه بعد زندگی خود را آسان کنید.
- در حال حاضر، سرور MongoDB شما آماده و در حال اجرا است. این خط فرمان را تا آخر نبندید. Mongobooster خود را باز کنید و به ایجاد و اتصال بروید. Mongobooster --> Connect --> Create --> (با تمام پورت اتصال پیش فرض 27017) --> Save and Connect.
عالی ! اکنون به سرور Mongo متصل هستید.
- بر روی localhost (سرور در پنل سمت چپ) کلیک راست کرده و یک پایگاه داده با نام 'School' ایجاد کنید. سپس بر روی School database کلیک راست کرده و Collection را ایجاد کنید. این مجموعه چیزی نیست جز جدول شما در RDBMS. فقط آن را به عنوان 'StudentDetails' نامگذاری کنید. در اینجا، می توان یک کتاب در مجموعه، سند، BSON نوشت. برای بررسی اینکه آیا همه چیز درست است، روی StudentDetails راست کلیک کرده و برای مشاهده سند انتخاب کنید. نگران نباشید، هیچ رکوردی جز پرس و جو در پنجره پیدا نمی کنید.
- اکنون، ما با back-end آماده هستیم، بنابراین به Visual Studio -> File -> New -> Project -> Console Application (انتخاب NET Core اما اختیاری) -> Create بیایید.
- بر روی مرجع کلیک راست کنید تا NuGet Package Manager را دریافت کنید تا درایور بتواند با MongoDB ارتباط برقرار کند. در «Browse»، درایور MongoDB.Driver را جستجو کرده و آن را نصب کنید. برای این مثال، من از نسخه 2.4 استفاده می کنم.
- کد زیر را با کد موجود در فایل Program.cs خود جایگزین کنید.
- using System;
- //MongoDB.Driver
- using MongoDB.Bson;
- using MongoDB.Driver;
- namespace AppTest
- {
- public class Students
- {
- public ObjectId Id { get; set; }
- public string FirstName { get; set; }
- public string LastName { get; set; }
- public string City { get; set; }
- public string Age { get; set; }
- }
- public class Program
- {
- protected static IMongoClient _client;
- protected static IMongoDatabase _database;
- public static Students GetStudent()
- {
- Console.WriteLine("Please enter student first name : ");
- string FNm = Console.ReadLine();
- Console.WriteLine("Please enter student last name : ");
- string LNm = Console.ReadLine();
- Console.WriteLine("Please enter student age : ");
- string StudentAge = Console.ReadLine();
- Console.WriteLine("Please enter city name : ");
- string StudentCity = Console.ReadLine();
- Students student = new Students()
- {
- FirstName = FNm,
- LastName = LNm,
- Age = StudentAge,
- City = StudentCity,
- };
- return student;
- }
- public void CRUDwithMongoDb()
- {
- _client = new MongoClient();
- _database = _client.GetDatabase("School");
- var _collection = _database.GetCollection<Students>("StudentDetails");
- Console.WriteLine
- ("Press select your option from the following\n1 - Insert\n2 - Update One Document\n3 - Delete\n4 - Read All\n");
- string userSelection = Console.ReadLine();
- switch (userSelection)
- {
- case "1":
- //Insert
- _collection.InsertOne(GetStudent());
- break;
- case "2":
- //Update
- var obj1 = GetStudent();
- _collection.FindOneAndUpdate<Students>
- (Builders<Students>.Filter.Eq("FirstName", obj1.FirstName),
- Builders<Students>.Update.Set("LastName", obj1.LastName).Set("City", obj1.City).Set("Age", obj1.Age));
- break;
- case "3":
- //Find and Delete
- Console.WriteLine("Please Enter the first name to delete the record(so called document) : ");
- var deletefirstName = Console.ReadLine();
- _collection.DeleteOne(s => s.FirstName == deletefirstName);
- break;
- case "4":
- //Read all existing document
- var all = _collection.Find(new BsonDocument());
- Console.WriteLine();
- foreach (var i in all.ToEnumerable())
- {
- Console.WriteLine(i.Id + " " + i.FirstName + "\t" + i.LastName + "\t" + i.Age + "\t" + i.City);
- }
- break;
- default:
- Console.WriteLine("Please choose a correct option");
- break;
- }
- //To continue with Program
- Console.WriteLine("\n--------------------------------------------------------------\nPress Y for continue...\n");
- string userChoice = Console.ReadLine();
- if (userChoice == "Y" || userChoice == "y")
- {
- this.CRUDwithMongoDb();
- }
- }
- public static void Main(string[] args)
- {
- Program p = new Program();
- p.CRUDwithMongoDb();
- //Hold the screen by logic
- Console.WriteLine("Press any key to trminated the program");
- Console.ReadKey();
- }
- }
- }
- فقط برنامه کنسول را اجرا کنید (Crl + F5).
نتیجه گیری
در این برنامه، من عملیات CRUD را با .NET Core و MongoDB نشان داده ام. پروژه نمایش داده شده با نام AppTest.rar به پیوست این مقاله موجود است. علاوه بر این، می توانید در مورد سفارشی سازی BsonDocument در قالب خود ما در وبلاگ من اینجا بیاموزید . NoSQL می تواند تعداد متفاوتی از ستون ها (فیلدها) در ردیف های مختلف (به نام سند) داشته باشد. ID را نیز می توان به جای FirstName سفارشی کرد، اما برای این مثال، من یک برنامه کاملاً ساده را انتخاب کردم. فایل فشرده CustomizedProject نیز موجود است که من در وبلاگ خود در مورد آن صحبت کرده ام.
اگر این کار را دوست دارید، لطفا به آن امتیاز دهید، پست را لایک/اشتراک بگذارید، و برای به روز رسانی های بیشتر در پروفایل من مشترک شوید. با تشکر!