MongoDB में, $cond
एग्रीगेशन पाइपलाइन ऑपरेटर एक बूलियन एक्सप्रेशन का मूल्यांकन करता है, और दो निर्दिष्ट रिटर्न एक्सप्रेशन में से एक देता है, जो इस पर निर्भर करता है कि बूलियन एक्सप्रेशन true
है या नहीं या false
।
$cond
ऑपरेटर दो सिंटैक्स स्वीकार करता है:एक लॉन्गहैंड सिंटैक्स और एक शॉर्टहैंड सिंटैक्स। प्रत्येक के उदाहरण नीचे हैं।
उदाहरण
मान लीजिए हमारे पास pets
. नामक संग्रह है निम्नलिखित दस्तावेज़ के साथ:
{ "_id" : 1, "name" : "Fetch", "type" : "Dog", "weight" : 20, "height" : 30 }
लॉन्गहैंड सिंटैक्स
यहां $cond
applying लागू करने का एक उदाहरण दिया गया है लॉन्गहैंड सिंटैक्स का उपयोग करके उस दस्तावेज़ में:
db.pets.aggregate(
[
{ $project: {
_id: 0,
isCanine: {
$cond: { if: { "$type": "Dog" }, then: "Yes", else: "No" }
}
}
}
]
)
परिणाम:
{ "isCanine" : "Yes" }
इस उदाहरण में, हमने type
. की तुलना की है एक शाब्दिक मूल्य के लिए क्षेत्र।
निम्नलिखित उदाहरण में, हम दस्तावेज़ के भीतर दो क्षेत्रों की तुलना करते हैं।
db.pets.aggregate(
[
{ $project: {
_id: 0,
bodyType: {
$cond: {
if: {
$gte: [ "$weight", "$height" ] },
then: "Fat",
else: "Skinny"
}
}
}
}
]
)
परिणाम:
{ "bodyType" : "Skinny" }
शॉर्टहैंड सिंटैक्स
$cond
ऑपरेटर एक शॉर्टहैंड सिंटैक्स भी स्वीकार करता है जो आपके कोड को अधिक संक्षिप्त बनाता है।
शॉर्टहैंड में मूल रूप से if
. को हटाना शामिल है , then
, और else
कीवर्ड।
जब आप ऐसा करते हैं, तो आपको व्यंजकों को एक सरणी में संलग्न करने की आवश्यकता होती है।
इस उदाहरण में, हम शॉर्टहैंड सिंटैक्स का उपयोग करने के लिए पहला उदाहरण फिर से लिखते हैं:
db.pets.aggregate(
[
{ $project: {
_id: 0,
isCanine: {
$cond: [ { "$type": "Dog" }, "Yes", "No" ]
}
}
}
]
)
परिणाम:
{ "isCanine" : "Yes" }
और यहाँ शॉर्टहैंड का उपयोग करते हुए दूसरा उदाहरण दिया गया है:
db.pets.aggregate(
[
{ $project: {
_id: 0,
bodyType: {
$cond: [
{ $gte: [ "$weight", "$height" ] },
"Fat",
"Skinny"
]
}
}
}
]
)
परिणाम:
{ "bodyType" : "Skinny" }