منبع اصلی نوشتار زیر در این لینک قرار دارد

برگرداندن بک آپ یک ستون از دیتابیس

امروز یه حادثه کوچیک رخ داد. به اشتباه یک ستون از یک table پاک شد. این موضوع اگه یک backup‌ مطمئن نداشته باشی یک فاجعه است و احتمالا درد سر های زیادی خواهید داشت. اما اگه بک آپ داشته باشی خیلی راحت می تونید از فایل  backup ستونی که می خواهید را اصلاح کنید. مشکل … ادامه خواندن برگرداندن بک آپ یک ستون از دیتابیس ادامه مطلب

منبع اصلی نوشتار زیر در این لینک قرار دارد

کوئری بر روی آیتم های فیلد از نوع آرایه در mongodb

درصورتی که قصد داشته باشیم document هایی از یک collection خاص را براساس شرطی بر روی یکی از فیلد های از نوع آرایه ای آنها پیدا کنیم میتونیم از عبارت $elemMatch بصورت زیر استفاده کنیم:

مثال اول:

فرض میکنیم collection ما شامل موارد زیر باشد:

{ _id: 1, results: [ 82, 85, 88 ] }
{ _id: 2, results: [ 75, 88, 89 ] }

در این صورت برای پیدا کردن document هایی که قیلد result آنها دارای عدد ۸۸ است بصورت زیر عمل میکنیم:

db.collection.find({
results: { $elemMatch: 88 }
})

همچنین میتوان از شرط های پیچیده تری استفاده نمود:

db.collection.find({
results: {
$elemMatch: { $gte: 80, $lt: 85 }
}
})

مثال دوم (آیتم های آرایه از نوع آبجکت):

فرض میکنیم collection ما شامل موارد زیر باشد:

{ _id: 1, results: [ { product: "abc", score: 10 }, { product: "xyz", score: 5 } ] }
{ _id: 2, results: [ { product: "abc", score: 8 }, { product: "xyz", score: 7 } ] }
{ _id: 3, results: [ { product: "abc", score: 7 }, { product: "xyz", score: 8 } ] }

برای یافتن مواردی که در آنها product ی با مقدار score بزرگتر مساوی 8 باشد بصورت زیر عمل میکنیم:

db.collection.find({
results: {
$elemMatch: {
product: "xyz",
score: { $gte: 8 }
}
}
})

ادامه مطلب

منبع اصلی نوشتار زیر در این لینک قرار دارد

تغییر نام دیتابیس در MongoDB

اگه تا بحال راجع به بانک های اطلاعاتی NoSQL شنیده باشید، حتما اسم MongoDB رو هم شنیدید. یک بانک اطلاعاتی Document Based که اطلاعات رو بصورت داکیومنت هایی به فرمت JSON ذخیره میکنه.

الان یه مدته که من هم سر و کارم به این بانک اطلاعاتی افتاده و دارم ازش استفاده میکنم. از این به بعد نکاتی رو که در رابطه با MongoDB بهشون بر میخورم رو هم تو این وبلاگ داکیومنت میکنم تا شاید بعدا به درد خودم یا کس دیگه ای بخوره.

خوب یکی از مواردی که تو کار با MongoDB ممکنه بهش بر بخوریم تغییر نام یک دیتابیس هستش. از اونجایی که خود MongoDB (حداقل تا الان) دستوری رو برای این منظور نداره و باید برای اینکار بصورت دیگه ای عمل کنیم. که در ادامه به چند روش انجام این کار اشاره میکنم:

تغییر نام بوسیله کپی کردن بانک اطلاعاتی:

یکی از روش هایی که برای تغییرنام میتونیم استفاده کنیم کپی بانک و پاک کردن نسخه قدیمی اون از روی سرور هستش، برای اینکار بصورت زیر عمل میکنیم:

> db.copyDatabase('old_database', 'new_database')
> use old_database
> db.dropDatabase()

تغییر نام بوسیله BackupRestore:

MongoDB برای Backup گیری از بانک ها و همچنین برگردوندن Backup ها دو تا دستور mongodump و mongorestore رو ارائه داده که میشه از اونها برای backup گیری از دیتابیس و برگردوندن backup با اسم جدید از اونها استفاده کرد. برای این منظور بصورت زیر عمل میکنیم:

mongodump --db old_database
mongorestore --db new_database /path/to/old_db_backup

پس از برگردوندن backup به سرور وصل میشیم و نسخه قدیمی رو با دستور dropDatabase پاک میکنیم:

mongo

> use old_database
> db.dropDatabase()


ادامه مطلب

منبع اصلی نوشتار زیر در این لینک قرار دارد