إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
$dateAdd يضيف عامل التشغيل عددا محددا من وحدات الوقت إلى تاريخ. وهو مفيد في السيناريوهات التي تحتاج فيها إلى حساب التواريخ المستقبلية استنادا إلى تاريخ معين وفاصل زمني.
إعراب
$dateAdd: {
startDate: <expression>,
unit: <string>,
amount: <number>,
timezone: <string> // Optional
}
Parameters
| المعلمة | Description |
|---|---|
startDate |
تاريخ بدء عملية الإضافة. |
unit |
وحدة الوقت المراد إضافتها. تتضمن الوحدات الصالحة: year، quarter، month، week، day، hour، minute، ، second. millisecond |
amount |
عدد الوحدات المراد إضافتها. |
timezone |
اختياري. المنطقة الزمنية المراد استخدامها للعملية. |
أمثلة
ضع في اعتبارك نموذج المستند هذا من مجموعة المتاجر.
{
"_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: إضافة أيام إلى تاريخ
يعرض eventName هذا الاستعلام ويحسب newEndDate عن طريق إضافة 7 أيام إلى تاريخ تم إنشاؤه من حقول السنة والشهر واليوم المتداخلة. والنتيجة هي مستند مبسط يعرض اسم الحدث وتاريخ انتهاءه الموسع.
db.stores.aggregate([
{ $match: { _id: "e6410bb3-843d-4fa6-8c70-7472925f6d0a" } },
{ $unwind: "$promotionEvents" },
{ $unwind: "$promotionEvents.promotionalDates" },
{
$project: {
eventName: 1,
newEndDate: {
$dateAdd: {
startDate: {
$dateFromParts: {
year: "$promotionEvents.promotionalDates.endDate.Year",
month: "$promotionEvents.promotionalDates.endDate.Month",
day: "$promotionEvents.promotionalDates.endDate.Day"
}
},
unit: "day",
amount: 7
}
}
}
}
])
يقوم هذا الاستعلام بإرجاع النتيجة التالية.
[
{
"_id": "e6410bb3-843d-4fa6-8c70-7472925f6d0a",
"newEndDate": "2024-10-06T00:00:00.000Z"
}
]
مثال 2: إضافة أشهر إلى تاريخ
يعرض eventName استعلام التجميع هذا ويحسب newStartDate بإضافة شهر إلى تاريخ بدء تم إعادة إنشائه من حقول الترقية المتداخلة. يساعد في تحديد تاريخ بدء حدث معدل استنادا إلى الجدول الزمني الأصلي. يقوم هذا الاستعلام بإرجاع eventName لكل مستند و newStartDate بعد شهر من تاريخ البدء الأصلي من بيانات حدث الترقية المتداخلة.
db.stores.aggregate([
{ $match: { _id: "e6410bb3-843d-4fa6-8c70-7472925f6d0a" } },
{ $unwind: "$promotionEvents" },
{ $unwind: "$promotionEvents.promotionalDates" },
{
$project: {
eventName: "$promotionEvents.eventName",
newStartDate: {
$dateAdd: {
startDate: {
$dateFromParts: {
year: "$promotionEvents.promotionalDates.startDate.Year",
month: "$promotionEvents.promotionalDates.startDate.Month",
day: "$promotionEvents.promotionalDates.startDate.Day"
}
},
unit: "month",
amount: 1
}
}
}
}
])
يقوم هذا الاستعلام بإرجاع النتيجة التالية.
[
{
"_id": "e6410bb3-843d-4fa6-8c70-7472925f6d0a",
"eventName": "Massive Markdown Mania",
"newStartDate": "2024-10-21T00:00:00.000Z"
}
]
محتوى ذو صلة
- راجع خيارات الترحيل من MongoDB إلى Azure DocumentDB.
- اقرأ المزيد حول توافق الميزات مع MongoDB.