مشاركة عبر


$eq

$eq يتم استخدام عامل التشغيل لمطابقة المستندات حيث تكون قيمة الحقل مساوية لقيمة محددة. يقوم عامل التشغيل $eq بتصفية المستندات استنادا إلى التطابقات الدقيقة في دالات تقييم الاستعلام لاسترداد المستندات بقيم وعناصر وصفائف محددة.

إعراب

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

Parameters

المعلمة‬ Description
field الحقل المطلوب مقارنته
value القيمة المراد مقارنتها مقابل

أمثلة

ضع في اعتبارك نموذج المستند هذا من مجموعة المتاجر.

{
    "_id": "0fcc0bf0-ed18-4ab8-b558-9848e18058f4",
    "name": "First Up Consultants | Beverage Shop - Satterfieldmouth",
    "location": {
        "lat": -89.2384,
        "lon": -46.4012
    },
    "staff": {
        "totalStaff": {
            "fullTime": 8,
            "partTime": 20
        }
    },
    "sales": {
        "totalSales": 75670,
        "salesByCategory": [
            {
                "categoryName": "Wine Accessories",
                "totalSales": 34440
            },
            {
                "categoryName": "Bitters",
                "totalSales": 39496
            },
            {
                "categoryName": "Rum",
                "totalSales": 1734
            }
        ]
    },
    "promotionEvents": [
        {
            "eventName": "Unbeatable Bargain Bash",
            "promotionalDates": {
                "startDate": {
                    "Year": 2024,
                    "Month": 6,
                    "Day": 23
                },
                "endDate": {
                    "Year": 2024,
                    "Month": 7,
                    "Day": 2
                }
            },
            "discounts": [
                {
                    "categoryName": "Whiskey",
                    "discountPercentage": 7
                },
                {
                    "categoryName": "Bitters",
                    "discountPercentage": 15
                },
                {
                    "categoryName": "Brandy",
                    "discountPercentage": 8
                },
                {
                    "categoryName": "Sports Drinks",
                    "discountPercentage": 22
                },
                {
                    "categoryName": "Vodka",
                    "discountPercentage": 19
                }
            ]
        },
        {
            "eventName": "Steal of a Deal Days",
            "promotionalDates": {
                "startDate": {
                    "Year": 2024,
                    "Month": 9,
                    "Day": 21
                },
                "endDate": {
                    "Year": 2024,
                    "Month": 9,
                    "Day": 29
                }
            },
            "discounts": [
                {
                    "categoryName": "Organic Wine",
                    "discountPercentage": 19
                },
                {
                    "categoryName": "White Wine",
                    "discountPercentage": 20
                },
                {
                    "categoryName": "Sparkling Wine",
                    "discountPercentage": 19
                },
                {
                    "categoryName": "Whiskey",
                    "discountPercentage": 17
                },
                {
                    "categoryName": "Vodka",
                    "discountPercentage": 23
                }
            ]
        }
    ]
}

مثال 1: استخدام عامل تصفية $eq على حقل مستوى الجذر

للعثور على متجر باسم "Boulder Innovations | Home Security Place - Ankundingburgh"، قم بتشغيل استعلام باستخدام دالة التقييم $eq للمطابقة في حقل الاسم وإسقاط حقلي المعرف والاسم فقط في النتيجة.

db.stores.find({
    name: {
        $eq: "Boulder Innovations | Home Security Place - Ankundingburgh"
    }
}, {
    name: 1
})

يقوم هذا الاستعلام بإرجاع النتيجة التالية:

[
    {
        "_id": "bda56164-954d-4f47-a230-ecf64b317b43",
        "name": "Boulder Innovations | Home Security Place - Ankundingburgh"
    }
]

مثال 2: استخدام عامل تصفية $eq على حقل متداخل

للعثور على متجر بإجمالي مبيعات تبلغ 37015 دولارا بالضبط، قم بتشغيل استعلام باستخدام عامل تشغيل $eq باستخدام رمز النقطة في الحقل المتداخل sales.totalSales.

db.stores.find({
    "sales.totalSales": {
        $eq: 37015
    }
}, {
    name: 1,
    "sales.totalSales": 1
})

يؤدي ذلك إلى إرجاع النتيجة التالية:

[
    {
        "_id": "bda56164-954d-4f47-a230-ecf64b317b43",
        "name": "Boulder Innovations | Home Security Place - Ankundingburgh",
        "sales": { "totalSales": 37015 }
    }
]

مثال 3: استخدام $eq للعناصر الفردية في صفيف

يسترد الاستعلام التالي المستندات باستخدام دالات تقييم المساواة على العناصر الفردية داخل صفيف promotionEvents.discounts المتداخل.

يبحث هذا الاستعلام عن تطابق المساواة على أي من الكائنات داخل صفيف الخصومات المتداخلة

db.stores.find({
    "promotionEvents.discounts": {
        $eq: {
            categoryName: "Alarm Systems",
            discountPercentage: 5
        }
    }
}, {
    name: 1
}, {
    limit: 2
})

يقوم هذا الاستعلام بإرجاع النتائج التالية:

[
  {
    "_id": "ece5bf6c-3255-477e-bf2c-d577c82d6995",
    "name": "Proseware, Inc. | Home Security Boutique - Schambergertown"
  },
  {
    "_id": "7baa8fd8-113a-4b10-a7b9-2c116e976491",
    "name": "Tailwind Traders | Home Security Pantry - Port Casper"
  }
]

مثال 4: استخدام $eq لمطابقة الصفيف بأكمله

يبحث هذا الاستعلام عن المستندات استنادا إلى المطابقة الدقيقة لجميع القيم داخل صفيف promotionEvents.discounts.

db.stores.find({
    "promotionEvents.discounts": {
        $eq: [{
            categoryName: "Alarm Systems",
            discountPercentage: 5
        }, {
            categoryName: "Door Locks",
            discountPercentage: 12
        }]
    }
}, {
    name: 1
})

يقوم هذا الاستعلام بإرجاع النتيجة التالية:

[
    {
        "_id": "aa9ad64c-29da-42f8-a1f0-30e03bf04a2d",
        "name": "Boulder Innovations | Home Security Market - East Sheridanborough"
    }
]

إشعار

لمطابقة المساواة على صفيف كامل، يجب أن يكون ترتيب القيم المحددة في دالات تقييم المساواة أيضا تطابقا دقيقا.