ابتدا بسته زیر را از طریق nuget نصب نمایید: dotnet add package MongoDB.Driver سپس مدلهای زیر را ایجاد نمایید: public class BaseModel
{
public BaseModel()
{
CreationDate=DateTime.Now;
}
public string Id { get; set; }
public DateTime CreationDate { get; set; }
public bool IsRemoved { get; set; }
public DateTime? ModificationDate { get; set; }
} ...
MySQL قادر به ایندکس کردن ستونهای JSON نمیباشد. برای حل این مشکل میتوانیم از generated columnها استفاده کنیم. منظور، ایجاد ستونهایی است که مقدارشان به صورت محاسبه شده و براساس ستونهای دیگر میباشد؛ به عنوان مثال جدول کاربران زیر را در نظر بگیرید: CREATE TABLE `Users` (
id int NOT NULL AUTO_INCREMENT,
first_name VARCHAR(255) NOT NULL,
last_name VARCHAR(255) NOT NULL,
email VARCHAR(255) NOT NULL,
gender EN ...
در قسمت قبل توابعی را که برای تغییر دیتای JSON مورد استفاده قرار میگیرند، بررسی کردیم. در ادامه به بررسی روشهای تبدیل یک دیتای غیر JSON به خروجی JSON و بلعکس خواهیم پرداخت. کوئریهایی که تا اینجا نوشتهایم، بر روی یک فیلد از نوع JSON بودند؛ اما این امکان را نیز داریم که از توابع JSON بر روی فیلدهای غیر JSON نیز استفاده کنیم. به عنوان مثال جدول کاربران و بلاگپست را در نظر بگیرید که به این صورت تعریف شدهاند: CREATE TABLE U ...
توابع ایجاد محتوای JSON در قسمت قبل برای ذخیرهسازی محتوای JSON از string literal استفاده کردیم؛ یعنی در واقع همانند یک مقدار رشتهای، فیلد JSON را مقداردهی کردیم: INSERT INTO tableName VALUES (
'{ "name": "User1", "age": 41 }'
);
یک روش دیگر، استفاده از توابع JSON_OBJECT یا JSON_ARRAY میباشد: INSERT INTO tableName VALUES (
JSON_ARRAY(
JSON_OBJECT(
"id", 1,
"name", "User1",
"age", 31,
"skills ...
تا قبل از اضافه شدن دیتاتایپ JSON به صورت توکار در MySQL، دادههای JSON را تنها میتوانستیم با فرمت رشتهای، درون دیتابیس ذخیره کنیم: CREATE TABLE tableName (
jsonData CHAR(250) -- or VARCHAR, TEXT, BLOB
);
INSERT INTO tableName VALUES (
'{ "name": "User1", "age": 41}'
);
SELECT * FROM tableName;
{ "name": "User1", "age": 41}
اما مشکل اینجاست که هیچ نوع اعتبارسنجی بر روی این دیتا صورت نخواهد گرفت؛ هیچ روشی ب ...
نام Redis از Remote Dictionary server گرفته شدهاست. Redis یکی از محبوبترین key-value storeها میباشد و هم چنین توسط برندهای بزرگ IT جهان استفاده میشود. لازم به ذکر است Amazon Elastic Cache از Redis پشتیبانی میکند. Redis یک دیتابیس No SQL است و بر روی مفهوم زوج کلید-مقدار (key-value ) کار میکند. key-value store امکانی را برای ذخیره دادهها که Value نامیده میشود، در یک Key فراهم میکند. شما میتوانید بعدا این دادهها را دریافت کن ...
در قسمت قبل عملیات ثبت و ویرایش اسناد را بررسی کردیم. همچنین نحوهی کار متد LoadAsync (و یا Load) را دیدیم. برای بازیابی یک سند، به همرا اسناد مرتبط با آن، از Load به همراه متد Include استفاده میکنیم. در این مثال میخواهیم آدرس شخص مورد نظر در برنامه با کد 59 بازیابی شود. var user = _documentSession
.Include<User>(x => x.Apps[59].AddressId)
.Load("Users/131-A");
var address = _documentSession.Load<Address ...
اگر تا بحال با بانکهای NoSql کار کرده و لذت بردهاید، به شما پیشنهاد میکنم حتما RavenDb را هم امتحان کنید، تا لذت استفاده از NoSql را چندین برابر حس کنید! RavenDb یک بانک اطلاعاتی NoSql از نوع DocumentStore است که بهصورت متن باز توسعه داده میشود و مخزن کد آن در Github موجود است. از ویژگیهای بارز RavenDb نسبت به سایر DocumentStoreها، Transactional بودن میباشد و در نسخهی 4 بصورت کامل از Net Core. پشتیبانی میکند. برای آشنایی بیشتر با No ...
سالهای مدیدی است که به طراحی پایگاههای sql پرداخته و تجاربی آموختهایم. کتابها و مقالات زیادی در اینباره منتشر شدهاند. از اینرو در نحوه طراحی دیتابیسهای رابطهای اطلاعات زیادی کسب و مسائل زیادی را از این راه حل نمودهایم؛ ولی با ورود دیتابیسهای NoSql و تنوع زیاد آنها و روشهای متنوعی که هر کدام از آنها به طور جداگانه دارند باعث شد تجربه سالها فعالیت و مدل ذهنی که داشتیم به یکباره تغییر کند و گاها بیشتر باعث گیج شدن میگردد. از ...