عملگرهای پرس‌وجو و انتخاب در MongoDB

مقدمه

عملگرهای پرس و جو در MongoDB شامل عملگرهای مقایسه‌ای، منطقی، عنصری، ارزیابی، جغرافیایی، آرایه‌ای، بیتی و کامنت هستند.

عملگرهای مقایسه‌ای MongoDB

$eq

عملگر $eq شرایط برابری را مشخص می‌کند. این عملگر اسناد را تطابق می‌دهد که در آن مقدار یک فیلد برابر با مقدار مشخص شده باشد.

نحو:

{ : { $eq: } }

مثال:

db.books.find({ price: { $eq: 300 } })

در این مثال، پرس و جو به مجموعه کتاب‌ها می‌پردازد تا تمامی اسنادی که در آن‌ها مقدار فیلد قیمت برابر با 300 باشد را انتخاب کند.

$gt

عملگر $gt اسنادی را انتخاب می‌کند که در آن‌ها مقدار فیلد بیشتر از مقدار مشخص شده باشد.

نحو:

{ field: { $gt: value } }

مثال:

db.books.find({ price: { $gt: 200 } })
$gte

عملگر $gte اسنادی را انتخاب می‌کند که مقدار فیلد بیشتر از یا برابر با مقدار مشخص شده باشد.

نحو:

{ field: { $gte: value } }

مثال:

db.books.find({ price: { $gte: 250 } })
$in

عملگر $in اسنادی را انتخاب می‌کند که مقدار یک فیلد برابر با هر کدام از مقادیر موجود در آرایه مشخص شده باشد.

نحو:

{ field: { $in: [, , …] } }

مثال:

db.books.find({ price: { $in: [100, 200] } })
$lt

عملگر $lt اسنادی را انتخاب می‌کند که مقدار فیلد کمتر از مقدار مشخص شده باشد.

نحو:

{ field: { $lt: value } }

مثال:

db.books.find({ price: { $lt: 20 } })
$lte

عملگر $lte اسنادی را انتخاب می‌کند که مقدار فیلد کمتر از یا برابر با مقدار مشخص شده باشد.

نحو:

{ field: { $lte: value } }

مثال:

db.books.find({ price: { $lte: 250 } })
$ne

عملگر $ne اسنادی را انتخاب می‌کند که مقدار فیلد برابر با مقدار مشخص شده نباشد.

نحو:

{ : { $ne: } }

مثال:

db.books.find({ price: { $ne: 500 } })
$nin

عملگر $nin اسنادی را انتخاب می‌کند که مقدار فیلد در آرایه مشخص شده نباشد یا اصلاً وجود نداشته باشد.

نحو:

{ field: { $nin: [, , …] } }

مثال:

db.books.find({ price: { $nin: [50, 150, 200] } })

عملگرهای منطقی MongoDB

$and

عملگر $and به عنوان یک عملگر منطقی AND روی یک آرایه عمل می‌کند. این آرایه باید شامل یک یا چند عبارت باشد و اسنادی را انتخاب می‌کند که تمام عبارات موجود در آرایه را برآورده کنند.

نحو:

{ $and: [ { }, { }, ....] }

مثال:

db.books.find({ $and: [ { price: { $ne: 500 } }, { price: { $exists: true } } ] })
$not

عملگر $not به عنوان یک عملگر منطقی NOT روی عبارت مشخص شده عمل می‌کند و اسنادی را انتخاب می‌کند که با عبارت مربوطه تطابق نداشته باشند.

نحو:

{ field: { $not: { } } }

مثال:

db.books.find({ price: { $not: { $gt: 200 } } })
$nor

عملگر $nor به عنوان یک عملگر منطقی NOR روی یک آرایه از یک یا چند عبارت پرس و جو عمل می‌کند و اسنادی را انتخاب می‌کند که هیچ کدام از عبارات پرس و جو در آرایه را برآورده نکنند.

نحو:

{ $nor: [ { }, { }, ..... ] }

مثال:

db.books.find({ $nor: [ { price: 200 }, { sale: true } ] })
$or

<pعملگر $or به عنوان یک عملگر منطقی OR روی یک آرایه از دو یا چند عبارت عمل می‌کند و اسنادی را انتخاب می‌کند که حداقل یکی از عبارات را برآورده کنند.

نحو:

{ $or: [ { }, { }, ... , { } ] }

مثال:

db.books.find({ $or: [ { quantity: { $lt: 200 } }, { price: 500 } ] })

عملگرهای عنصری MongoDB

$exists

عملگر $exists اسنادی را انتخاب می‌کند که فیلد مشخص شده در آن‌ها وجود داشته باشد زمانی که مقدار بولی برابر با true باشد. همچنین این عملگر اسنادی را انتخاب می‌کند که فیلد آن‌ها مقدار null داشته باشد.

نحو:

{ field: { $exists: } }

مثال:

db.books.find({ qty: { $exists: true, $nin: [5, 15] } })
$type

عملگر $type اسنادی را انتخاب می‌کند که مقدار فیلد آن‌ها از نوع BSON مشخص شده باشد.

نحو:

{ field: { $type: } }

مثال:

db.books.find({ "bookid": { $type: 2 } })

عملگرهای ارزیابی MongoDB

$expr

عملگر $expr اجازه می‌دهد که از عبارات تجمیعی در زبان پرس و جو استفاده شود.

نحو:

{ $expr: { } }

مثال:

db.store.find({ $expr: { $gt: [ "$product", "price" ] } })
$jsonSchema

این عملگر اسنادی را انتخاب می‌کند که با اسکیما JSON مشخص شده تطابق داشته باشند.

نحو:

{ $jsonSchema: }
$mod

عملگر $mod اسنادی را انتخاب می‌کند که مقدار فیلد آن‌ها هنگام تقسیم بر مقسوم علیه، باقی‌مانده مشخص شده را داشته باشد.

نحو:

{ field: { $mod: [ divisor, remainder ] } }

مثال:

db.books.find({ qty: { $mod: [ 200, 0 ] } })
$regex

این عملگر قابلیت‌های عبارت منظم برای تطابق الگوهای رشته‌ای در پرس و جوها را فراهم می‌کند. MongoDB از عبارات منظم سازگار با Perl استفاده می‌کند.

نحو:

{ : /pattern/ }

مثال:

db.books.find({ price: { $regex: /789$/ } })
$text

عملگر $text در محتوای فیلد، که با ایندکس متنی ایندکس شده باشد، جستجو می‌کند.

نحو:

{ $text: { $search: , $language: , $caseSensitive: , $diacriticSensitive: } }

مثال:

db.books.find({ $text: { $search: "Othelo" } })
$where

عملگر “where” برای ارسال یک رشته حاوی یک عبارت جاوااسکریپت یا یک تابع جاوااسکریپت کامل به سیستم پرس و جو استفاده می‌شود.

مثال:

db.books.find({ $where: function() { return (hex_md5(this.name) == "9b53e667f30cd329dca1ec9e6a8") } })
[تعداد: 1   میانگین: 5/5]
دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

شاید دوست داشته باشید