با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن . و کاربرانی که دوره کامل آموزش پایتون ، را دنبال می کنند. در قسمت قبلی به انتخاب Document در MongoDB پرداختیم ، در این جلسه قصد داریم به آموزش ساخت و ایجاد کوئری در MongoDB در پایتون و کوئری های پیشرفته در MongoDB بپردازیم.
هنگام انتخاب document ها در یک کالکشن می توانید نتایج را با استفاده از شی کوئری فیلتر کنید.
اولین پارامتر تابع ()find یک شی کوئری است و برای محدود کردن نتایج جستجو استفاده می شود.
مثال زیر document (هایی) را که فیلد address ان ها برابر “Park Lane 38” است را پیدا می کند:
1 2 3 4 5 6 7 8 9 10 11 12 | import pymongo myclient = pymongo.MongoClient("mongodb://localhost:27017/") mydb = myclient["mydatabase"] mycol = mydb["customers"] myquery = { "address": "Park Lane 38" } mydoc = mycol.find(myquery) for x in mydoc: print(x) |
خروجی:
C:\Users\My Name>python demo_mongodb_query.py {‘_id’: 11, ‘name’: ‘Ben’, ‘address’: ‘Park Lane 38’} |
برای ساخت کوئری های پیشرفته در MongoDB تر باید اطلاحاتی را در شی کوئری ایجاد کنید.
برای مثال برای پیدا کردن document هایی که فیلد address آن ها با حرف “S” یا بالاتر از آن (بر اساس حروف الفبا) شروع می شود، به صورت زیر عمل می کنیم:
1 2 3 4 5 6 7 8 9 10 11 12 | import pymongo myclient = pymongo.MongoClient("mongodb://localhost:27017/") mydb = myclient["mydatabase"] mycol = mydb["customers"] myquery = { "address": { "$gt": "S" } } mydoc = mycol.find(myquery) for x in mydoc: print(x) |
خروجی:
C:\Users\My Name>python demo_mongodb_query_modifier.py {‘_id’: 5, ‘name’: ‘Michael’, ‘address’: ‘Valley 345’} {‘_id’: 8, ‘name’: ‘Richard’, ‘address’: ‘Sky st 331’} {‘_id’: 10, ‘name’: ‘Vicky’, ‘address’: ‘Yellow Garden 2’} {‘_id’: 14, ‘name’: ‘Viola’, ‘address’: ‘Sideway 1633’} |
از عبارات با قاعده (Regular Expressions) نیز می توانید برای فیلتر نتایج استفاده کنید.
در مثال زیر تنها document هایی که فیلد address آن ها با حرف “S” شروع شده باشد را در خروجی قرار می دهیم:
1 2 3 4 5 6 7 8 9 10 11 12 | mport pymongo myclient = pymongo.MongoClient("mongodb://localhost:27017/") mydb = myclient["mydatabase"] mycol = mydb["customers"] myquery = { "address": { "$regex": "^S" } } mydoc = mycol.find(myquery) for x in mydoc: print(x) |
عبارات با قاعده یا همان Regular Epressions فقط در رشته کوئری قابل استفاده هستند.
جلسه ایجاد کوئری در MongoDB در پایتون نیز به پایان رسید.
در جلسه بعد به آموزش مرتب سازی نتایج در MongoDB خواهیم پرداخت. با ما همراه باشید.