إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
$map يتم استخدام عامل التشغيل لتطبيق تعبير على كل عنصر في صفيف وإرجاع صفيف بالنتائج المطبقة. عامل التشغيل هذا مفيد لتحويل الصفائف داخل المستندات، مثل تعديل كل عنصر أو استخراج حقول معينة.
إعراب
{
$map: {
input: <array>,
as: <variable>,
in: <expression>
}
}
Parameters
| المعلمة | Description |
|---|---|
input |
الصفيف الذي تمت معالجته بواسطة التعبير. |
as |
اسم المتغير لكل عنصر في الصفيف. |
in |
التعبير الذي يجب تطبيقه على كل عنصر. |
أمثلة
ضع في اعتبارك نموذج المستند هذا من مجموعة المتاجر.
{
"_id": "988d2dd1-2faa-4072-b420-b91b95cbfd60",
"name": "Lakeshore Retail",
"location": {
"lat": -51.3041,
"lon": -166.0838
},
"staff": {
"totalStaff": {
"fullTime": 5,
"partTime": 20
}
},
"sales": {
"totalSales": 266491,
"salesByCategory": [
{
"categoryName": "Towel Racks",
"totalSales": 13237
},
{
"categoryName": "Washcloths",
"totalSales": 44315
},
{
"categoryName": "Face Towels",
"totalSales": 42095
},
{
"categoryName": "Toothbrush Holders",
"totalSales": 47912
},
{
"categoryName": "Hybrid Mattresses",
"totalSales": 48660
},
{
"categoryName": "Napkins",
"totalSales": 31439
},
{
"categoryName": "Pillow Cases",
"totalSales": 38833
}
]
},
"tag": [
"#ShopLocal",
"#FashionStore",
"#SeasonalSale",
"#FreeShipping",
"#MembershipDeals"
]
}
مثال 1: استخراج أسماء الفئات
يقوم هذا الاستعلام بتصفية stores المجموعة ل _id، ثم يعرض حقلا categoryNames جديدا حيث يزيد إجمالي المبيعات لكل عنصر في صفيف salesByCategory بمقدار 500 باستخدام عامل التشغيل $map.
db.stores.aggregate([{
$match: {
_id: "988d2dd1-2faa-4072-b420-b91b95cbfd60"
}
},
{
$project: {
categoryNames: {
$map: {
input: "$sales.salesByCategory.totalSales",
as: "category",
in: {
$add: ["$$category", 500]
}
}
}
}
}
])
يقوم هذا الاستعلام بإرجاع النتيجة التالية.
[
{
"_id": "988d2dd1-2faa-4072-b420-b91b95cbfd60",
"categoryNames": [
13737,
44815,
42595,
48412,
49160,
31939,
39333
]
}
]
محتوى ذو صلة
- راجع خيارات الترحيل من MongoDB إلى Azure DocumentDB.
- اقرأ المزيد حول توافق الميزات مع MongoDB.