سلام توی این مقاله میخوام بهتون بگم که چطور با پایتون به mongodb وصل بشیم و باهاش کار کنید.
اگه احیانا با مونگو دی بی آشنایی ندارید و دوست دارید که یاد بگیریدش یه دونه لینک گذاشتم آخر همین مطلب. دوره آموزش مونگو دی بی هستش که میتونید ببینید.
برای وصل کردن mongodb به زبان های برنامه نویسی از driver استفاده میشه. driverها رابط بین زبان برنامه نویسی و دیتابیس mongodb هستن. هر زبانی درایور مخصوص به خودش رو داره. برای زبان پایتون هم خودِ mongodb پیشنهاد میکنه که بیایید از پکیج pymongo استفاده کنید. اما این پکیج یه مقدار یادگیریش سخته و منطق درست و درمونی هم نداره(حداقل برای من).
به جاش یه پکیج دیگه وجود داره به اسم mongoengine که بر پایه همین pymongo ساخته شده و ساده تر هم هستش. و ما قراره از اون استفاده کنیم.
برای کار کردن با mongoengine باید با استفاده از دستور زیر نصبش کنید:
pip install mongoengine
این دستور هم mongoengine رو نصب میکنه و هم pymongo رو.
خب بعد از نصب پکیج ها اولین کاری باید بکنیم اینه که بیاییم به دیتابیسمون وصل بشیم:
connect('mydb')
با استفاده از متد connect به دیتابیس مورد نظرتون وصل میشید. اگه دیتابیسی که اسمش رو دادید وجود داشت که بهش وصل میشه اما اگه وجود نداشت ایجادش میکنه.
بعد از اینکه به دیتابیس وصل شدیم باید collectionهامون رو ایجاد کنیم. توی mongoengine هر collection یک کلاس خواهد بود. و فیلد هایی که میخواییم اون collection داشته باشه رو به شکل زیر میسازیم:
class Users(Document): name = StringField() age = IntField()
کد بالا میاد یه collection ایجاد میکنه به اسم users. این کالکشن دو تا فیلد داره به اسم name و age که هر کدوم یک نوع به خصوص از داده رو ذخیره میکنن. فقط دقت کنید که تمام کالکشن های شما باید از کلاس Document ارث بری کنن.
حالا که کالکشن رو ساختیم میرم سراغ عملیات های CRUD:
برای ذخیره داکیومنت ها داخل کالکشن باید بیاییم یک نمونه جدید از اون کلاس ایجاد کنیم و مقدارها رو به فیلدها ارسال کنیم:
user1 = Users(name='amir', age=28) user1.save()
حالا اگه کد بالا رو اجرا کنیم اطلاعاتمون ذخیره میشه.
برای خوندن اصلاعات میایید از objects استفاده میکنید. objects رو میتونید به شکل یک مدیر ببینید که به شما اجازه query زدن داخل دیتابیس رو میده:
user1 = Users.objects(age=28) print(user1.name)
توی کد بالا گفتم که برو از داخل کالکشن Users اون کاربری که مقدار age برابر با ۲۸ هستش رو بیار.
برای بروزرسانی اطلاعات میتونید از متد update استفاده کنید:
user1 = Users.objects(age=28) user1.update(name='ali')
اول یک داکیومنت خاص رو گرفتم. و بعد با استفاده از متد update مقدار اون فیلدی که میخواستم رو تغییر دادم.
برای خذف کردن اطلاعات اول یک داکیومنت خاص رو میگیرید و بعد با استفاده از متد delete حذفش میکنید:
user1 = Users.objects(age=28) user1.delete()
به همین سادگی به همین خوشمزگی.
اگه دلتون میخواد بیشتر بدونید به لینک زیر یه سر بزنید:
https://www.mongard.ir/courses/mongodb/episode/172/python-mongo/