إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
aggregate يتم استخدام الأمر لمعالجة سجلات البيانات وإرجاع النتائج المحسوبة. يقوم بإجراء عمليات على البيانات، مثل التصفية والت تجميعها وفرزها، ويمكنه تحويل البيانات بطرق مختلفة.
aggregate الأمر متعدد الاستخدامات للغاية ويستخدم عادة لتحليل البيانات وإعداد التقارير.
إعراب
db.collection.aggregate(pipeline, options)
- البنية الأساسية لبرنامج ربط العمليات التجارية: صفيف من مراحل التجميع التي تعالج البيانات وتحولها.
-
خيارات: اختياري. تحديد المزيد من الخيارات للتجميع، مثل
explainوallowDiskUseو.cursor
أمثلة
مثال 1: حساب إجمالي المبيعات حسب الفئة
يوضح هذا المثال كيفية حساب إجمالي المبيعات لكل فئة في stores المجموعة.
db.stores.aggregate([
{
$unwind: "$sales.salesByCategory"
},
{
$group: {
_id: "$sales.salesByCategory.categoryName",
totalSales: { $sum: "$sales.salesByCategory.totalSales" }
}
}
])
عينة الإخراج
[mongos] StoreData> db.stores.aggregate([
... {
... $unwind: "$sales.salesByCategory"
... },
... {
... $group: {
... _id: "$sales.salesByCategory.categoryName",
... totalSales: { $sum: "$sales.salesByCategory.totalSales" }
... }
... }
... ])
[
{ _id: 'Christmas Trees', totalSales: 3147281 },
{ _id: 'Nuts', totalSales: 3002332 },
{ _id: 'Camping Tables', totalSales: 4431667 }
]
مثال 2: البحث عن متاجر ذات موظفين بدوام كامل أكبر من 10
يوضح هذا المثال كيفية تصفية المتاجر حيث يكون عدد الموظفين بدوام كامل أكبر من 10.
db.stores.aggregate([
{
$match: {
"staff.totalStaff.fullTime": { $gt: 10 }
}
}
])
عينة الإخراج
[mongos] StoreData> db.stores.aggregate([
... {
... $match: {
... "staff.totalStaff.fullTime": { $gt: 10 }
... }
... }
... ])
[
{
_id: '7954bd5c-9ac2-4c10-bb7a-2b79bd0963c5',
name: "Lenore's DJ Equipment Store",
location: { lat: -9.9399, lon: -0.334 },
staff: { totalStaff: { fullTime: 18, partTime: 7 } },
sales: {
totalSales: 35911,
salesByCategory: [ { categoryName: 'DJ Headphones', totalSales: 35911 } ]
},
promotionEvents: [
{
discounts: [
{ categoryName: 'DJ Turntables', discountPercentage: 18 },
{ categoryName: 'DJ Mixers', discountPercentage: 15 }
]
}
],
tag: [ '#SeasonalSale', '#FreeShipping', '#MembershipDeals' ]
}
]
مثال 3: سرد جميع أحداث الترويج بخصومات أكبر من 15%
يسرد هذا المثال جميع أحداث الترقية حيث يكون أي خصم أكبر من 15%.
db.stores.aggregate([
{
$unwind: "$promotionEvents"
},
{
$unwind: "$promotionEvents.discounts"
},
{
$match: {
"promotionEvents.discounts.discountPercentage": { $gt: 15 }
}
},
{
$group: {
_id: "$promotionEvents.eventName",
discounts: { $push: "$promotionEvents.discounts" }
}
}
])
عينة الإخراج
[mongos] StoreData> db.stores.aggregate([
... {
... $unwind: "$promotionEvents"
... },
... {
... $unwind: "$promotionEvents.discounts"
... },
... {
... $match: {
... "promotionEvents.discounts.discountPercentage": { $gt: 20 }
... }
... },
... {
... $group: {
... _id: "$promotionEvents.eventName",
... discounts: { $push: "$promotionEvents.discounts" }
... }
... }
... ])
[
{
[
{ categoryName: 'Basketball Gear', discountPercentage: 23 },
{ categoryName: 'Wool Carpets', discountPercentage: 22 },
{
categoryName: 'Portable Bluetooth Speakers',
discountPercentage: 24
}
]
}
]
محتوى ذو صلة
- مراجعة خيارات الترحيل من MongoDB إلى Azure DocumentDB
- اقرأ المزيد حول توافق الميزات مع MongoDB