آشنایی با عملگر eq$ در MongoDB

آشنایی با عملگر eq$ در MongoDB

در این مقاله آشنایی با عملگر eq$ در MongoDB از بخش آموزش مانگو دی بی و عملیات CRUD در مانگو دی بی پس از آموزش مقاله آشنایی با دستور MongoDB Projection در مانگو دی بی می خواهیم در این آموزش، نحوه استفاده از عملگر eq$ در MongoDB (مانگو دی بی) را برای تعیین یک شرط برابری و بررسی برابری با مقادیر صحبت کنیم.

عملگر eq$ در MongoDB (مانگو دی بی) چه کاربردی دارد؟

شما با استفاده از این عملگر eq$ می توانید شروطی را براساس مقادیر و پارامترهایی قرار دهید و اسنادی مورد نظر را واکشی و نمایش دهید.

معرفی عملگر eq$ در MongoDB (مانگو دی بی)

عملگر $eq در واقع یک عملگر کوئری مقایسه هستش که به شما اجازه می دهد در پایگاه مانگو دی بی documents اسنادی را با مقداری که توسط شرط $eq برابر و مقایسه کرده اید را واکشی و نمایش دهد.

(شبیه دستور Where در کوئری های دیتابیس های رابطه ای مانند SQL Server,Oracle ,… می باشد)

ساختار دستور Syntax استفاده از شرط $eq در MongoDB به صورت زیر می باشد:

{ <field>: { $eq: <value> } }

در کوئری مانگو دی بی به شکل دستور زیر می باشد:

{<field>: <value>}

مثال هایی از عملگر eq$ در MongoDB (مانگو دی بی)

ما می خواهیم با استفاده از دستور زیر یا استفاده از دستور ()InsertMany اسنادی را به کالکشن products درج و ثبت می کنیم:

db.products.insertMany([
    { "_id" : 1, "name" : "xPhone", "price" : 799, "releaseDate": ISODate("2011-05-14"), "spec" : { "ram" : 4, "screen" : 6.5, "cpu" : 2.66 },"color":["white","black"],"storage":[64,128,256]},

    { "_id" : 2, "name" : "xTablet", "price" : 899, "releaseDate": ISODate("2011-09-01") , "spec" : { "ram" : 16, "screen" : 9.5, "cpu" : 3.66 },"color":["white","black","purple"],"storage":[128,256,512]},

    { "_id" : 3, "name" : "SmartTablet", "price" : 899, "releaseDate": ISODate("2015-01-14"), "spec" : { "ram" : 12, "screen" : 9.7, "cpu" : 3.66 },"color":["blue"],"storage":[16,64,128]},

    { "_id" : 4, "name" : "SmartPad", "price" : 699, "releaseDate": ISODate("2020-05-14"),"spec" : { "ram" : 8, "screen" : 9.7, "cpu" : 1.66 },"color":["white","orange","gold","gray"],"storage":[128,256,1024]},

    { "_id" : 5, "name" : "SmartPhone", "price" : 599,"releaseDate": ISODate("2022-09-14"), "spec" : { "ram" : 4, "screen" : 9.7, "cpu" : 1.66 },"color":["white","orange","gold","gray"],"storage":[128,256]}
 ])

1) استفاده از عملگر eq$ که بررسی کنیم اگر مقدار ستون برابر با مقدار مشخصی باشد.

در ادامه ما در کوئری زیر با کمک از دستور ()find از عملگر $eq استفاده می کنیم و در کالکشن products اسنادی را می خواهیم و نمایش دهیم که (به شرطی که) مقدار ستون price در اسناد برابر مقدار 899 باشد:

db.products.find({
    price: {
        $eq: 899
    }
}, {
    name: 1,
    price: 1
})

کوئری بدون استفاده از عملگر eq$ به صورت زیر می باشد:

db.products.find({
    price: 899
}, {
    name: 1,
    price: 1
})

هر دو کوئری از نظر خروجی و نمایش اسناد به یک شکل می باشد و اسنادی زیر را در خروجی نمایش می دهد:

[
  { _id: 2, name: 'xTablet', price: 899 },
  { _id: 3, name: 'SmartTablet', price: 899 }
]

2) استفاده از عملگر eq$ که بررسی کنیم اگر مقدار ستون در یک embedded document برابر با مقدار مشخصی باشد.

در ادامه ما در کوئری زیر از عملگر $eq استفاده می کنیم و اسنادی را جستجو می کنیم و پیدا خواهیم کرد که (به شرطی که) مقدار ستون ram در سند embedded شده به نام spec برابر مقدار 4 باشد:

db.products.find({
    "spec.ram": {
        $eq: 4
    }
}, {
    name: 1,
    "spec.ram": 1
})

کوئری بدون استفاده از عملگر eq$ به صورت زیر می باشد:

db.products.find({
    "spec.ram": 4

}, {
    name: 1,
    "spec.ram": 1
})

هر دو کوئری از نظر خروجی و نمایش اسناد به یک شکل می باشد و اسنادی زیر را در خروجی نمایش می دهد:

[
  { _id: 1, name: 'xPhone', spec: { ram: 4 } },
  { _id: 5, name: 'SmartPhone', spec: { ram: 4 } }
]

3) استفاده از عملگر eq$ که بررسی کنیم اگر در یک آرایه، عناصرش برابر با مقدار مشخصی باشد.

در ادامه ما در کوئری زیر با کمک از دستور ()find از عملگر $eq استفاده می کنیم و در کالکشن products اسنادی را می خواهیم و نمایش دهیم که (به شرطی که) که در آرایه color هر یک از عناصر و المان های آرایه برابر مقدار "black" باشد:

db.products.find({
    color: {
        $eq: "black"
    }
}, {
    name: 1,
    color: 1
})

کوئری بدون استفاده از عملگر eq$ به صورت زیر می باشد:

db.products.find({
    color: "black"

}, {
    name: 1,
    color: 1
})

هر دو کوئری از نظر خروجی و نمایش اسناد به یک شکل می باشد و اسنادی زیر را در خروجی نمایش می دهد:

[
  { _id: 1, name: 'xPhone', color: [ 'white', 'black' ] },
  { _id: 2, name: 'xTablet', color: [ 'white', 'black', 'purple' ] }
]

4) استفاده از عملگر eq$ که بررسی کنیم اگر مقدار ستون در سند برابر با مقدار تاریخ باشد.

در ادامه ما در کوئری زیر با کمک از دستور ()find از عملگر $eq استفاده می کنیم و در کالکشن widget اسنادی را می خواهیم و نمایش دهیم که (به شرطی که) که در اسناد مقدار ستون published date برابر مقدار 2020-05-14 از نوع تاریخ باشد:

db.products.find({
    releaseDate: {
        $eq: new ISODate("2020-05-14")
    }
}, {
    name: 1,
    releaseDate: 1
})

کوئری بدون استفاده از عملگر eq$ به صورت زیر می باشد:

[
  {
    _id: 4,
    name: 'SmartPad',
    releaseDate: ISODate("2020-05-14T00:00:00.000Z")
  }
]

خلاصه می کنیم

با استفاده از عملگر $eq در MongoDB می توانید شرط هایی را در اسناد مشخص کنید.

محسن زمانی هستم، برنامه نویس و طراح وب ، سئو هم بلدم . به هدف تفریح و سرگرمی این وب سایت رو طراحی کردم تا مطالبی که دوست دارم رو اینجا به اشتراک بزارم.

دیدگاه خود را بنویسید:

آدرس ایمیل شما نمایش داده نخواهد شد.