اجرای کوئری در سند MongoDB
متد ()find
برای اجرای یک کوئری نیاز دارید تا از متد ()find در MongoDB استفاه کنید.
گرامر:
گرامر پایه برای این متد به شکل زیر است:
>db.COLLECTION_NAME.find()
متد ()Pretty
برای نمایش نتیجه، بصورت فرمت دهی شده و ساخت یافته میتوانید از متد ()pretty استفاده کنید.
گرامر:
>db.mycol.find().pretty()
مثال:
>db.mycol.find().pretty() { "_id": ObjectId(7df78ad8902c), "title": "MongoDB Overview", "description": "MongoDB is no sql database", "by": "tutorials point", "url": "http://www.tutorialspoint.com", "tags": ["mongodb", "database", "NoSQL"], "likes": "100" } >
معادلهای عبارت Where در MongoDB
برای اجرای کوئریهای بر اساس چندین شرط بر روی سندها میتوانید از عملگرهای زیر استفاده کنید:
عملگر | گرامر | مثال | مشابه در پایگاه داده رابطه ای |
Equality | {<key>:<value>} | ()db.mycol.find({"by":"tutorialspoint"}).pretty | ' where by = 'tutorials point |
Less Than | {<key>:{$lt:<value>}} | ()db.mycol.find({"likes":{$lt:50}}).pretty | where likes < 50 |
Less Than Equals | {<key>:{$lte:<value>}} | ()db.mycol.find({"likes":{$lte:50}}).pretty | where likes <= 50 |
Greater Than | {<key>:{$gt:<value>}} | ()db.mycol.find({"likes":{$gt:50}}).pretty | where likes > 50 |
Greater Than Equals | {<key>:{$gte:<value>}} | ()db.mycol.find({"likes":{$gte:50}}).pretty | where likes >= 5 0 |
Not Equals | {<key>:{$ne:<value>}} | ()db.mycol.find({"likes":{$ne:50}}).pretty | where likes != 50 |
عبارت And در MongoDB
گرامر:
اگر چندین کلید را به متد ()find پاس دهید و آنها را با کاما (,) از هم جداکنید، MongoDB با آنها مانند عبارت And رفتار میکند. گرامر پایه عبارت AND در جدول زیر نشان داده شده است:
>db.mycol.find({key1:value1, key2:value2}).pretty()
مثال:
در ادامه یک مثال آمده است که همهی دورههای آموزشی که توسط 'tutorials point' ارائه شدهاند و عنوان آنها 'MongoDB Overview’ است را نشان میدهد:
>db.mycol.find({"by":"tutorials point","title": "MongoDB Overview"}).pretty() { "_id": ObjectId(7df78ad8902c), "title": "MongoDB Overview", "description": "MongoDB is no sql database", "by": "tutorials point", "url": "http://www.tutorialspoint.com", "tags": ["mongodb", "database", "NoSQL"], "likes": "100" } >
برای مثال بالا، معادل عبارت Where آن ' where by='tutorials point' AND title='MongoDB Overview' خواهد بود. شما میتوانید چندین جفت کلید-مقدار به عبارت find پاس دهید.
عبارت OR در MongoDB
گرامر:
برای اجرای کوئریهای مبتنی بر عبارت OR روی سند نیاز دارید تا از کلمهی کلیدی or$ استفاده کنید. گرامر پایه عبارت OR در زیر نشان داده شده است:
>db.mycol.find( { $or: [ {key1: value1}, {key2:value2} ] } ).pretty()
مثال
در ادامه یک مثال آمده است که همهی دورههای آموزشی را که توسط 'tutorials point' ارائه شدهاند یا عنوان آنها 'MongoDB Overview’ است، نشان میدهد:
>db.mycol.find({$or:[{"by":"tutorials point"},{"title": "MongoDB Overview"}]}).pretty() { "_id": ObjectId(7df78ad8902c), "title": "MongoDB Overview", "description": "MongoDB is no sql database", "by": "tutorials point", "url": "http://www.tutorialspoint.com", "tags": ["mongodb", "database", "NoSQL"], "likes": "100" } >
استفاده از عبارات AND و OR باهم
مثال
در ادامه یک مثال آمده است که سندهایی را که مقدار فیلد likes آنها بیشتر از 100 و عنوان آنها برابر 'MongoDB Overview’ یا توسط 'tutorials point' ارائه شدهاند، نشان خواهد داد. معادل عبارت Where آن برابر 'where likes>10 AND (by = 'tutorials point' OR title= 'MongoDB Overview’)’ است.
>db.mycol.find("likes": {$gt:10}, $or: [{"by": "tutorials point"}, {"title": "MongoDB Overview"}] }).pretty() { "_id": ObjectId(7df78ad8902c), "title": "MongoDB Overview", "description": "MongoDB is no sql database", "by": "tutorials point", "url": "http://www.tutorialspoint.com", "tags": ["mongodb", "database", "NoSQL"], "likes": "100" } >