MongoDB 4.0 से, आप $toDouble
. का उपयोग कर सकते हैं मान को डबल में बदलने के लिए एग्रीगेशन पाइपलाइन ऑपरेटर.
अधिकांश प्रकारों को डबल में बदला जा सकता है, लेकिन ObjectId को नहीं।
जब आप दिनांक मान को डबल में कनवर्ट करते हैं, $toDouble
उस युग के बाद से मिलीसेकंड की संख्या लौटाता है जो दिनांक मान से मेल खाती है।
जब आप बूलियन को डबल में बदलते हैं, यदि बूलियन true
. है , तो डबल है 1
. अगर बूलियन false
है , तो डबल है 0
।
उदाहरण
मान लीजिए कि हमारे पास types
. नामक संग्रह है और इसमें निम्नलिखित दस्तावेज शामिल हैं:
{ "_id" : ObjectId("601340eac8eb4369cf6ad9db"), "double" : 123.75, "string" : "123", "boolean" : true, "date" : ISODate("2020-12-31T23:30:15.123Z"), "integer" : 123, "long" : NumberLong(123), "decimal" : NumberDecimal("123.75") }
हम $toDouble
. का उपयोग कर सकते हैं ऑपरेटर उन प्रकारों (ऑब्जेक्ट आईडी को छोड़कर) को डबल में बदलने के लिए। यदि इनपुट पहले से ही डबल है, तो यह केवल डबल लौटाता है।
db.types.aggregate(
[
{
$project:
{
_id: 0,
double: { $toDouble: "$double" },
string: { $toDouble: "$string" },
boolean: { $toDouble: "$boolean" },
date: { $toDouble: "$date" },
integer: { $toDouble: "$integer" },
long: { $toDouble: "$long" },
decimal: { $toDouble: "$decimal" }
}
}
]
).pretty()
परिणाम:
{ "double" : 123.75, "string" : 123, "boolean" : 1, "date" : 1609457415123, "integer" : 123, "long" : 123, "decimal" : 123.75 }
त्रुटियां
यदि आप त्रुटियों का सामना करते हैं, तो $convert
. का उपयोग करके देखें $toDouble
. के बजाय ऑपरेटर . $convert
ऑपरेटर आपको संपूर्ण एकत्रीकरण संचालन को प्रभावित किए बिना त्रुटियों को संभालने की अनुमति देता है।
$toDouble
ऑपरेटर $convert
. का उपयोग करने के बराबर है मान को डबल में बदलने के लिए ऑपरेटर।
यहां $convert
. का उपयोग करने का एक उदाहरण दिया गया है ऑब्जेक्ट आईडी को डबल में बदलने का प्रयास करने के लिए (जिसके परिणामस्वरूप त्रुटि होती है):
db.types.aggregate(
[
{
$project:
{
_id: 0,
result:
{
$convert: {
input: "$_id",
to: "double",
onError: "An error occurred",
onNull: "Input was null or empty"
}
}
}
}
]
)
परिणाम:
{ "result" : "An error occurred" }
$convert
. का उपयोग करना त्रुटि होने पर उपयोग करने के लिए हमें त्रुटि संदेश निर्दिष्ट करने की अनुमति दी, और इसने संपूर्ण एकत्रीकरण ऑपरेशन को नहीं रोका।
MongoDB देखें $convert
अधिक उदाहरणों के लिए।