نکات کار با فیلدهای آرایهای در Mongodb :
۱- فیلد آرایه ای شامل یک آیتم خاص:
db.inventory.find( { tags: "red" } )
۲- فیلد آرایه ای شامل چند آیتم خاص همراه با رعایت ترتیب : (فقط آرایه ای که دقیقا معادل باشد)
db.inventory.find( { tags: ["red", "blank"] } )
۳- فیلد آرایه ای شامل چند آیتم بدون رعایت ترتیب : (آرایه باید شامل این آیتم ها باشد ولی میتواند آیتمهای دیگری نیز داشته باشد)
db.inventory.find( { tags: { $all: ["red", "blank"] } } )
۴- فیلد آرایه ای که حداقل یکی از آیتمهای آن شرط را پاس کند :
db.inventory.find( { dim_cm: { $gt: 25 } } )
۵- فیلد آرایه ای که حداقل یکی از آیتمهای آن یکی از شروط را پاس کند :
db.inventory.find( { dim_cm: { $gt: 15, $lt: 20 } } )
۶- فیلد آرایه ای که حداقل یکی از آیتمهای آن همه شروط را پاس کند :
db.inventory.find( { dim_cm: { $elemMatch: { $gt: 22, $lt: 30 } } } )
۷- فیلد آرایه ای بر اساس طول آرایه :
db.inventory.find( { "tags": { $size: 3 } } )
۸- فیلد آرایه ای بر اساس ایندکس :
db.<collection_name>.find({"tags.1":"red"})
۱- فیلد آرایه ای شامل یک آیتم خاص:
db.inventory.find( { tags: "red" } )
۲- فیلد آرایه ای شامل چند آیتم خاص همراه با رعایت ترتیب : (فقط آرایه ای که دقیقا معادل باشد)
db.inventory.find( { tags: ["red", "blank"] } )
۳- فیلد آرایه ای شامل چند آیتم بدون رعایت ترتیب : (آرایه باید شامل این آیتم ها باشد ولی میتواند آیتمهای دیگری نیز داشته باشد)
db.inventory.find( { tags: { $all: ["red", "blank"] } } )
۴- فیلد آرایه ای که حداقل یکی از آیتمهای آن شرط را پاس کند :
db.inventory.find( { dim_cm: { $gt: 25 } } )
۵- فیلد آرایه ای که حداقل یکی از آیتمهای آن یکی از شروط را پاس کند :
db.inventory.find( { dim_cm: { $gt: 15, $lt: 20 } } )
۶- فیلد آرایه ای که حداقل یکی از آیتمهای آن همه شروط را پاس کند :
db.inventory.find( { dim_cm: { $elemMatch: { $gt: 22, $lt: 30 } } } )
۷- فیلد آرایه ای بر اساس طول آرایه :
db.inventory.find( { "tags": { $size: 3 } } )
۸- فیلد آرایه ای بر اساس ایندکس :
db.<collection_name>.find({"tags.1":"red"})
آخرین نسخه MongoDB روی سیستم های 32 بیتی نصب نمیشه. در واقع از ورژن ۳.۴ به بعد دیگه نصب نمیشه.
همچنین فقط روی ویندوز ۱۰ ، مک او اس ۱۰.۱۳ و ابونتو ۱۶.۰۴ به بعد نصب میشه. دنبال نصبش روی ورژنهای قبلی نباشید.
اگر مجبورید روی سیستم ضعیفی ازش استفاده کنید برید سراغ ورژنهای قبل از ۳.۴.
برای دوستان رد هتیمون هم ، درجریان باشید که منگو روی کرنلهای UEK کار نمیکنه و باید از کرنل RHCK استفاده کنید.
سعی کنید برای محیط آزمایشگاهیتون ، منگو رو روی لینوکس نصب کنید چون به احتمال قریب به یقین ، محیط productionتون روی لینوکس خواهد بود مگر اینکه واقعا بدونید بعدا از چی میخواید استفاده کنید.
#mongodb #nosql
همچنین فقط روی ویندوز ۱۰ ، مک او اس ۱۰.۱۳ و ابونتو ۱۶.۰۴ به بعد نصب میشه. دنبال نصبش روی ورژنهای قبلی نباشید.
اگر مجبورید روی سیستم ضعیفی ازش استفاده کنید برید سراغ ورژنهای قبل از ۳.۴.
برای دوستان رد هتیمون هم ، درجریان باشید که منگو روی کرنلهای UEK کار نمیکنه و باید از کرنل RHCK استفاده کنید.
سعی کنید برای محیط آزمایشگاهیتون ، منگو رو روی لینوکس نصب کنید چون به احتمال قریب به یقین ، محیط productionتون روی لینوکس خواهد بود مگر اینکه واقعا بدونید بعدا از چی میخواید استفاده کنید.
#mongodb #nosql
یه خواهش کلی از همه دوستانمون مخصوصا لینوکسی ها...
لطفا لطفا لطفا برای محیط production ، انجام hardening یادتون نره. میدونم احتمالا انجام هم ندید کسی متوجه نمیشه و شاید این کلمه رو هم خودتون تا حالا نشنیده بودید. معنیش این میشه طبق داکیومنتهای موجود مواردی از جمله security رو تقویت کنید. آیتم های خیلی زیادی هست و فقط انتخاب پسوورد قوی کافی نیست.
این ربطی به دیتابیس و زبان برنامه نویسی و ... نداره. هر چیزی که به شبکه وصل میشه ( یا به طور کلی به برق وصل میشه ) باید روش hardening انجام بشه. چه برسه که این چیز محصولی باشه که ازش قراره کسب درآمد بشه.
لطفا لطفا لطفا برای محیط production ، انجام hardening یادتون نره. میدونم احتمالا انجام هم ندید کسی متوجه نمیشه و شاید این کلمه رو هم خودتون تا حالا نشنیده بودید. معنیش این میشه طبق داکیومنتهای موجود مواردی از جمله security رو تقویت کنید. آیتم های خیلی زیادی هست و فقط انتخاب پسوورد قوی کافی نیست.
این ربطی به دیتابیس و زبان برنامه نویسی و ... نداره. هر چیزی که به شبکه وصل میشه ( یا به طور کلی به برق وصل میشه ) باید روش hardening انجام بشه. چه برسه که این چیز محصولی باشه که ازش قراره کسب درآمد بشه.
برای کار به دیتابیس منگو راههای زیادی هست. اکثرا میرن سراغ استفاده از نرم افزار گرافیکی compass ولی بدونید که خیلی کار مدیریتی خاصی نمیتونید باهاش انجام بدید و اگر گیر کنید باید بیاید سراغ shell.
معروفترینشون که همه میشناسن mongo shell هستش ، ولی بدونید منگو داره روی شل دیگه ای کار میکنه به نام mongosh که هنوز فقط ورژن بتاش رو داده.
شل mongo به صورت پیش فرض همراه با دیتابیس منگو نصب میشه ولی به صورت مجزا هم میتونید نصبش کنید که در ادامه چندتا مثال ازش میارم.
راه اندازی شل mongo: (اگر مسیر فایل اجرایی به PATH اضافه شده باشه)
$mongo
اتصال شل mongo به یک پورت دیگه به جز پورت پیش فرض ۲۷۰۱۷:
$mongo --port 28015
وصل شدن به یک دیتابیس ریموت :
$mongo "mongodb://mongodb0.example.com:28015"
یا
$mongo --host mongodb0.example.com:28015
یا
$mongo --host mongodb0.example.com --port 28015
وصل به شدن به سرور ریموت اگر یوزر پسوورد گذاشته باشید: (بعد از اتصال پسوورد میخواد)
$mongo "mongodb://alice@mongodb0.examples.com:28015/?authSource=admin"
#mongodb #nosql
معروفترینشون که همه میشناسن mongo shell هستش ، ولی بدونید منگو داره روی شل دیگه ای کار میکنه به نام mongosh که هنوز فقط ورژن بتاش رو داده.
شل mongo به صورت پیش فرض همراه با دیتابیس منگو نصب میشه ولی به صورت مجزا هم میتونید نصبش کنید که در ادامه چندتا مثال ازش میارم.
راه اندازی شل mongo: (اگر مسیر فایل اجرایی به PATH اضافه شده باشه)
$mongo
اتصال شل mongo به یک پورت دیگه به جز پورت پیش فرض ۲۷۰۱۷:
$mongo --port 28015
وصل شدن به یک دیتابیس ریموت :
$mongo "mongodb://mongodb0.example.com:28015"
یا
$mongo --host mongodb0.example.com:28015
یا
$mongo --host mongodb0.example.com --port 28015
وصل به شدن به سرور ریموت اگر یوزر پسوورد گذاشته باشید: (بعد از اتصال پسوورد میخواد)
$mongo "mongodb://alice@mongodb0.examples.com:28015/?authSource=admin"
#mongodb #nosql
توی منگو مثل لینوکس میتونید prompt رو تغییر بدید. مثلا توی شل منگو بنویسید :
cmdCount = 1;
prompt = function() {
return "Uptime:"+db.serverStatus().uptime+" Documents:"+db.stats().objects+ “ “ + db+"@"+host+ “ “+(cmdCount++) + "> ";
}
باعث میشه prompt منگوتون این شکلی بشه و یک سری اطلاعات اضافی نمایش بده :
Uptime:5897 Documents:6 test@myHost1 3>
cmdCount = 1;
prompt = function() {
return "Uptime:"+db.serverStatus().uptime+" Documents:"+db.stats().objects+ “ “ + db+"@"+host+ “ “+(cmdCount++) + "> ";
}
باعث میشه prompt منگوتون این شکلی بشه و یک سری اطلاعات اضافی نمایش بده :
Uptime:5897 Documents:6 test@myHost1 3>
موقع کار با اعداد توی Mongodb خیلی حواستون باشه.
منگو ، درایورا و جاوا اسکریپت ، هر کدوم رفتار خودشون رو با اعداد دارن.
اگر دیتای حساس دارید قبل از استفاده از اعداد ، مخصوصا اعشاری ها و اعداد بزرگ ، حتما از اشتراک رفتاراشون استفاده کنید که بعدا مشکل نخورید.
منگو ، درایورا و جاوا اسکریپت ، هر کدوم رفتار خودشون رو با اعداد دارن.
اگر دیتای حساس دارید قبل از استفاده از اعداد ، مخصوصا اعشاری ها و اعداد بزرگ ، حتما از اشتراک رفتاراشون استفاده کنید که بعدا مشکل نخورید.
یه نکته خیلی باحال از جاوا اسکریپت 😁
چه جوری یک property رو از یه آبجکت حذف کنیم؟
توی تصویر میبینید چه قدر خلاقانه با استفاده از spread operator این کار رو انجام داده.
منبع :
https://dev.to/darksmile92/js-use-spread-to-exclude-properties-1km9
#js #javanoscript
چه جوری یک property رو از یه آبجکت حذف کنیم؟
توی تصویر میبینید چه قدر خلاقانه با استفاده از spread operator این کار رو انجام داده.
منبع :
https://dev.to/darksmile92/js-use-spread-to-exclude-properties-1km9
#js #javanoscript
بعد از ۲۰ سال کار با کامپیوتر و ۷،۸ سال برنامه نویسی فرانت ، بک ، دیتابیس اوراکل ، پایتون ، لینوکس و هزار تا چیز ریز و درشت دیگه ، به جرات میتونم بگم مهترین قسمت انجام یک پروژه بعد از انتخاب ابزار مناسب ، DataModeling برای دیتابیسشه.
در مقابل مهارت "طراحی دیتابیس با توجه به نیاز پروژه" ، برنامه نویسی فرانت و بک ، شوخی ای بیش نیست.
در مقابل مهارت "طراحی دیتابیس با توجه به نیاز پروژه" ، برنامه نویسی فرانت و بک ، شوخی ای بیش نیست.
چه جوری سایز vlc player رو fix کنیم؟
مثلا داریم یه آموزش چند قسمتی نگاه میکنیم و سایز vlc رو به دلخواه تغییر دادیم. اینجوری میتونیم کاری کنیم که ویدیو بعدی هم با همین سایز باز بشه و دیگه سایزش عوض نمیشه.
توی ویندوز هم روش مشابهی داره
#vlc
مثلا داریم یه آموزش چند قسمتی نگاه میکنیم و سایز vlc رو به دلخواه تغییر دادیم. اینجوری میتونیم کاری کنیم که ویدیو بعدی هم با همین سایز باز بشه و دیگه سایزش عوض نمیشه.
توی ویندوز هم روش مشابهی داره
#vlc
مسیر فایل های منگو دی بی دیگه مثل قبل به صورت پیش فرض /data/db نیست. مثلا اگر از مک ورژن کاتالینا به بعد استفاده میکنید اصلا اجازه همچین کاری رو بهتون نمیده که توی روت همچین کارایی کنید. داکیومت نسخه منگویی که استفاده میکنید برای سیستم عاملی که دارید استفاده میکنید رو بخونید قبل از اینکه شروع کنید.
#nosql #mongodb
#nosql #mongodb