MongoDB 4.0 से, आप $toLong
. का उपयोग कर सकते हैं किसी मान को लंबे समय में बदलने के लिए एग्रीगेशन पाइपलाइन ऑपरेटर.
अधिकांश प्रकारों को लंबे समय में परिवर्तित किया जा सकता है, लेकिन ऑब्जेक्ट आईडी नहीं कर सकता।
जब आप किसी दिनांक मान को लंबे $toLong
. में कनवर्ट करते हैं उस युग के बाद से मिलीसेकंड की संख्या लौटाता है जो दिनांक मान से मेल खाती है।
जब आप बूलियन को लॉन्ग में बदलते हैं, यदि बूलियन 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") }
हम $toLong
. का उपयोग कर सकते हैं उन क्षेत्रों को बदलने के लिए ऑपरेटर (_id
. को छोड़कर) क्षेत्र) लंबे समय तक। यदि इनपुट पहले से ही लंबा है, तो यह केवल लंबा लौटाता है।
db.types.aggregate(
[
{
$project:
{
_id: 0,
double: { $toLong: "$double" },
string: { $toLong: "$string" },
boolean: { $toLong: "$boolean" },
date: { $toLong: "$date" },
integer: { $toLong: "$integer" },
long: { $toLong: "$long" },
decimal: { $toLong: "$decimal" }
}
}
]
).pretty()
परिणाम:
{ "double" : NumberLong(123), "string" : NumberLong(123), "boolean" : NumberLong(1), "date" : NumberLong("1609457415123"), "integer" : NumberLong(123), "long" : NumberLong(123), "decimal" : NumberLong(123) }
त्रुटियां
यदि आप त्रुटियों का सामना करते हैं, तो $convert
. का उपयोग करके देखें $toLong
. के बजाय ऑपरेटर . $convert
ऑपरेटर आपको संपूर्ण एकत्रीकरण संचालन को प्रभावित किए बिना त्रुटियों को संभालने की अनुमति देता है।
$toLong
ऑपरेटर $convert
. का उपयोग करने के बराबर है मान को लंबे में बदलने के लिए ऑपरेटर।
यहां $convert
. का उपयोग करने का एक उदाहरण दिया गया है ऑब्जेक्ट आईडी को लंबे समय में बदलने का प्रयास करने के लिए (जिसके परिणामस्वरूप त्रुटि होती है):
db.types.aggregate(
[
{
$project:
{
_id: 0,
result:
{
$convert: {
input: "$_id",
to: "long",
onError: "An error occurred",
onNull: "Input was null or empty"
}
}
}
}
]
)
परिणाम:
{ "result" : "An error occurred" }
$convert
. का उपयोग करना त्रुटि होने पर उपयोग करने के लिए हमें त्रुटि संदेश निर्दिष्ट करने की अनुमति दी, और इसने संपूर्ण एकत्रीकरण ऑपरेशन को नहीं रोका।
MongoDB देखें $convert
अधिक उदाहरणों के लिए।