إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
$zip يتم استخدام عامل التشغيل لدمج صفيفين أو أكثر من العناصر في صفيف واحد من الصفائف. يكون مفيدا عندما تريد دمج العناصر ذات الصلة من صفائف متعددة في بنية صفيف واحدة.
إعراب
{
$zip: {
inputs: [ <array1>, <array2>, ... ],
useLongestLength: <boolean>, // Optional
defaults: <array> // Optional
}
}
Parameters
| المعلمة | Description |
|---|---|
inputs |
صفيف من الصفائف المراد دمجها من حيث العنصر. |
useLongestLength |
تستخدم القيمة المنطقية التي، إذا تم تعيينها إلى true، أطول طول لصفائف الإدخال. إذا كانت خاطئة أو غير محددة، فإنها تستخدم أقصر طول. |
defaults |
صفيف من القيم الافتراضية لاستخدامها إذا كان useLongestLength صحيحا وأي صفيف إدخال أقصر من أطول صفيف. |
أمثلة
ضع في اعتبارك نموذج المستند هذا من مجموعة المتاجر.
{
"_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: الاستخدام الأساسي
لنفترض أنك تريد دمج الحقلين categoryName و totalSales من salesByCategory الصفيف. يقوم هذا الاستعلام بإرجاع صفيف فردي من الصفائف ضمن categoryWithSales الحقل.
useLongestLength قد يؤدي تعيين إلى true إلى إرجاع الإخراج التالي، بينما تقوم قيمة false بإزالة Napkins الصفيف من الإخراج.
db.stores.aggregate([{
$match: {
_id: "a715ab0f-4c6e-4e9d-a812-f2fab11ce0b6"
}
},
{
$project: {
name: 1,
categoryNames: "$sales.salesByCategory.categoryName",
totalSales: "$sales.salesByCategory.totalSales",
categoryWithSales: {
$zip: {
inputs: ["$sales.salesByCategory.categoryName", "$sales.salesByCategory.totalSales"],
useLongestLength: false
}
}
}
}
])
يقوم هذا الاستعلام بإرجاع النتيجة التالية.
[
{
"_id": "a715ab0f-4c6e-4e9d-a812-f2fab11ce0b6",
"name": "Lakeshore Retail | Holiday Supply Hub - Marvinfort",
"categoryNames": ["Stockings"],
"totalSales": [25731],
"categoryWithSales": [["Stockings", 25731]]
}
]
محتوى ذو صلة
- راجع خيارات الترحيل من MongoDB إلى Azure DocumentDB.
- اقرأ المزيد حول توافق الميزات مع MongoDB.