پیشتر در مورد Mongodb و پایگاه‌داده‌های غیر رابطه‌ای که بر اساس الگوریتم‌های کلید‌/‌ مقدار و بر اساس اسناد، پیاده‌سازی شده‌اند، صحبت کردیم. در این شماره قصد داریم نگاهی کاربردی‌تر به این موضوع داشته باشیم.
کد خبر: ۵۶۸۱۳۶

همان‌طور که می‌دانید برای برقراری یک رابطه بین برنامه خود و پایگاه‌داده مورد استفاده به یک Driver‌ نیاز است، این درایور به برنامه شما امکان می‌دهد که به پایگاه‌داده خود وصل شوید و دستورهای مورد نیاز خود را در آن اجرا کنید.

در پلتفرم دات‌نت مایکروسافت درایورهای زیادی مانند ODBC,Oracle, OleDB, MS SQL Server را پشتیبانی می‌کند.

حال می‌خواهیم از دیتابیس Mongodb‌در برنامه‌ای که با دات نوشته‌ایم، استفاده کنیم. برای این کار باید درایور آن را داشته باشیم تا بتوانیم براحتی به پایگاه داده وصل شده و با آن ارتباط برقرار کنیم. برای دانلود درایور MongoDb برای دات‌نت، می‌توانید از لینک زیر استفاده کنید:

http:‌/‌‌/‌github.com‌/‌mongodb‌/‌mongo‌ـ‌csharp‌ـ‌driver

پس از این‌که درایور را نصب کردید، دو فایل DLL را باید به طرح خود اضافه کنید:

MongoDB.Bson.dll

MongoDB.Driver.dll

همان‌‌گونه که در شماره‌های پیش گفتیم، شما برای استفاده از اطلاعات موجود در پایگاه‌ داده به این نیاز دارید ساختار داده‌های خود را به مدل‌های مفهومی یا همان ساختار کلاس تبدیل و از آن استفاده کنید. برای مثال، ما یک مدل داده نمونه بر اساس کلاس‌های مفهومی ایجاد کردیم تا بتوانیم براحتی از Mongodb در برنامه‌های خود استفاده کنیم:

public class Post

{

public Oid Id { get; private set; }

public string Title { get; set; }

public string Body { get; set; }

public int CharCount { get; set; }

public IList«Comment» Comments { get; set; }

}

public class Comment

{

public DateTime TimePosted { get; set; }

public string Email { get; set; }

public string Body { get; set; }

}

مدل داده‌ ما یک پست و کامنت‌های آن است که یک‌سری صفات داخل خود دارد. اما از دیدگاه پایگاه‌ داده، این مدل داده چگونه تفسیر می‌شود؟

در بخش ویژگی‌های این مدل پایگاه‌داده‌ها توضیح دادیم که BSON توسعه‌یافته همان JSON است، منتها با تغییراتی. فرمت اصلی ذخیره سازی داده‌ها در این پایگاه‌داده‌هاست و خواندن هر رکورد به معنی خواندن یک سند BSON است: این سند BSON باید بک کلاس که خصوصیات آن سند را دارد Deserialize شود تا بتوان براحتی به آن دسترسی داشت. خب این کار به چه صورت انجام می‌گیرد؟

قبل از هر چیز ما یک شیء از کلاس بالا را در پایگاه داده ذخیره کرده سپس ساختار BSON و مدل کلاس را بررسی می‌کنیم. برای درج یک رکورد این به صورت عمل می‌کنیم:

var mongo = new Mongo();

mongo.Connect();

var db = mongo.GetDatabase("blog");

var collection = db.GetCollection«Post»();

ar post = new Post();

‌/‌‌/‌init post

collection.Save(post);

در چهار خط اول یک شیء از کلاس Mongo ایجاد می‌کنیم و به سرور آن وصل می‌شویم، سپس یک شیء برای برقراری ارتباط با پایگاه ‌داده مورد نظرمان را که blog است، ایجاد می‌کنیم. در مرحله بعد یک شیء از مجموعه (جدول) Post‌ که بر اساس مدل طراحی شده‌ ماست، ایجاد می‌کنیم. حالا برنامه آماده انجام عملیات روی پایگاه‌ داده است. سپس یک شیء از کلاس Post ایجاد می‌کنیم و آن را مقداردهی سپس در پایگاه داده ذخیر می‌کنیم. اما داده ما به چه صورت ذخیره می‌شود؟

{ _id: ObjectId("4be05365340d000000002554"),

Title: "My First Post",

Body: "This isn't a very long post.",

CharCount: 28,

Comments: [

{ TimePosted: "Fri May 24 2013 00:00:00 GMT‌ـ‌0600 (Central Standard Time)",

Email: "bob_mcbob@gmail.com",

Body: "This article is too short!"

}

]

}

داده ما سرانجام به این صورت در پایگاه داده ذخیره می‌شود. این سند که بر اساس فرمت BSON است در‌واقع Serialize شده یک شیء از کلاس Post‌ است که با Deserialize‌کردن آن به یک شیء از کلاس Post می‌تواند در برنامه خود به مقادیر آن دسترسی پیدا کرد.

newsQrCode
ارسال نظرات در انتظار بررسی: ۰ انتشار یافته: ۰
فرزند زمانه خود باش

گفت‌وگوی «جام‌جم» با میثم عبدی، کارگردان نمایش رومئو و ژولیت و چند کاراکتر دیگر

فرزند زمانه خود باش

نیازمندی ها