MongoDB में, $reverseArray
एकत्रीकरण पाइपलाइन ऑपरेटर एक सरणी में आइटम के क्रम को उलट देता है।
यह एक सरणी अभिव्यक्ति को एक तर्क के रूप में स्वीकार करता है और तत्वों के साथ एक सरणी को उल्टे क्रम में लौटाता है।
उदाहरण
मान लीजिए हमारे पास products
. नामक संग्रह है निम्नलिखित दस्तावेजों के साथ:
{ "_id" : 1, "prod" : "Bat", "sizes" : [ "S", "M", "L" ] } { "_id" : 2, "prod" : "Hat", "sizes" : [ "XS", "S", "L", "XL" ] } { "_id" : 3, "prod" : "Cap", "sizes" : [ "M", "L" ] }
हम $reverseArray
. का उपयोग कर सकते हैं उन सरणी तत्वों के क्रम को उलटने के लिए ऑपरेटर।
उदाहरण:
db.products.aggregate(
[
{ $match: { _id: { $in: [ 1, 2, 3 ] } } },
{
$project:
{
_id: 0,
sizes: 1,
reversed: { $reverseArray: [ "$sizes" ] }
}
}
]
)
परिणाम:
{ "sizes" : [ "S", "M", "L" ], "reversed" : [ "L", "M", "S" ] } { "sizes" : [ "XS", "S", "L", "XL" ], "reversed" : [ "XL", "L", "S", "XS" ] } { "sizes" : [ "M", "L" ], "reversed" : [ "L", "M" ] }
खाली सरणी
एक खाली सरणी पास करने से एक खाली सरणी मिलती है।
नमूना दस्तावेज़:
{ "_id" : 4, "prod" : "Zap", "sizes" : [ ] }
लागू करें $reverseArray
:
db.products.aggregate(
[
{ $match: { _id: { $in: [ 4 ] } } },
{
$project:
{
_id: 0,
sizes: 1,
reversed: { $reverseArray: [ "$sizes" ] }
}
}
]
)
परिणाम:
{ "sizes" : [ ], "reversed" : [ ] }
शून्य मान
null
. का मान पास करना रिटर्न null
।
नमूना दस्तावेज़:
{ "_id" : 5, "prod" : "Tap", "sizes" : null }
$reverseArray
Apply लागू करें :
db.products.aggregate(
[
{ $match: { _id: { $in: [ 5 ] } } },
{
$project:
{
_id: 0,
sizes: 1,
reversed: { $reverseArray: [ "$sizes" ] }
}
}
]
)
परिणाम:
{ "sizes" : null, "reversed" : null }
अनुपलब्ध फ़ील्ड
$reverseArray
लागू किया जा रहा है उस फ़ील्ड के लिए जो दस्तावेज़ में मौजूद नहीं है null
. में परिणाम देता है लौटाया जा रहा है।
नमूना दस्तावेज़:
{ "_id" : 6, "prod" : "Map" }
$reverseArray
Apply लागू करें :
db.products.aggregate(
[
{ $match: { _id: { $in: [ 6 ] } } },
{
$project:
{
_id: 0,
sizes: 1,
reversed: { $reverseArray: [ "$sizes" ] }
}
}
]
)
परिणाम:
{ "reversed" : null }
गलत डेटा प्रकार
$reverseArray
लागू किया जा रहा है उस फ़ील्ड में जो किसी सरणी का समाधान नहीं करता है, जिसके परिणामस्वरूप त्रुटि होती है।
नमूना दस्तावेज़:
{ "_id" : 7, "prod" : "Box", "sizes" : "XXL" }
$reverseArray
Apply लागू करें :
db.products.aggregate(
[
{ $match: { _id: { $in: [ 7 ] } } },
{
$project:
{
_id: 0,
sizes: 1,
reversed: { $reverseArray: [ "$sizes" ] }
}
}
]
)
परिणाम:
uncaught exception: Error: command failed: { "ok" : 0, "errmsg" : "The argument to $reverseArray must be an array, but was of type: string", "code" : 34435, "codeName" : "Location34435" } : aggregate failed : [email protected]/mongo/shell/utils.js:25:13 [email protected]/mongo/shell/assert.js:18:14 [email protected]/mongo/shell/assert.js:639:17 [email protected]/mongo/shell/assert.js:729:16 [email protected]/mongo/shell/db.js:266:5 [email protected]/mongo/shell/collection.js:1058:12 @(shell):1:1