MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

MongoDB $toDecimal

MongoDB 4.0 से, आप $toDecimal . का उपयोग कर सकते हैं एक मान को दशमलव में बदलने के लिए एग्रीगेशन पाइपलाइन ऑपरेटर।

अधिकांश प्रकारों को दशमलव में बदला जा सकता है, लेकिन ObjectId को नहीं।

जब आप दिनांक मान को दशमलव में बदलते हैं, $toDecimal उस युग के बाद से मिलीसेकंड की संख्या लौटाता है जो दिनांक मान से मेल खाती है।

जब आप बूलियन को दशमलव में बदलते हैं, यदि बूलियन 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")
}

हम $toDecimal . का उपयोग कर सकते हैं ऑपरेटर उन प्रकारों (ऑब्जेक्ट आईडी को छोड़कर) को दशमलव में बदलने के लिए। यदि इनपुट पहले से ही एक दशमलव है, तो यह केवल दशमलव लौटाता है।

db.types.aggregate(
  [
    {
      $project:
        { 
          _id: 0,
          double: { $toDecimal: "$double" },
          string: { $toDecimal: "$string" },
          boolean: { $toDecimal: "$boolean" },
          date: { $toDecimal: "$date" },
          integer: { $toDecimal: "$integer" },
          long: { $toDecimal: "$long" },
          decimal: { $toDecimal: "$decimal" }
        }
    }
  ]
).pretty()

परिणाम:

{
	"double" : NumberDecimal("123.750000000000"),
	"string" : NumberDecimal("123"),
	"boolean" : NumberDecimal("1"),
	"date" : NumberDecimal("1609457415123"),
	"integer" : NumberDecimal("123.000000000000"),
	"long" : NumberDecimal("123"),
	"decimal" : NumberDecimal("123.75")
}

त्रुटियां

यदि आप त्रुटियों का सामना करते हैं, तो $convert . का उपयोग करके देखें $toDecimal . के बजाय ऑपरेटर . $convert ऑपरेटर आपको संपूर्ण एकत्रीकरण संचालन को प्रभावित किए बिना त्रुटियों को संभालने की अनुमति देता है।

$toDecimal ऑपरेटर $convert . का उपयोग करने के बराबर है मान को दशमलव में बदलने के लिए ऑपरेटर।

यहां $convert . का उपयोग करने का एक उदाहरण दिया गया है ObjectId को दशमलव में बदलने का प्रयास करने के लिए (जिसके परिणामस्वरूप त्रुटि होती है):

db.types.aggregate(
  [
    {
      $project:
        { 
          _id: 0,
          result: 
          {
            $convert: { 
              input: "$_id", 
              to: "decimal",
              onError: "An error occurred",
              onNull: "Input was null or empty" 
            }
          }
        }
    }
  ]
)

परिणाम:

{ "result" : "An error occurred" } 

$convert . का उपयोग करना त्रुटि होने पर उपयोग करने के लिए हमें त्रुटि संदेश निर्दिष्ट करने की अनुमति दी, और इसने संपूर्ण एकत्रीकरण ऑपरेशन को नहीं रोका।

MongoDB देखें $convert अधिक उदाहरणों के लिए।


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. BsonDocument ऑब्जेक्ट को वापस कक्षा में कैसे डिसेरिएलाइज़ करें?

  2. MongoCredential और Uncategorized Mongo Db अपवाद को प्रमाणित करने वाला अपवाद

  3. मोंगोडीबी गिनती दस्तावेज़ ()

  4. क्लस्टर नियंत्रण प्रदर्शन और स्वास्थ्य निगरानी

  5. mongodb:किसी स्तंभ का उच्चतम संख्यात्मक मान ज्ञात करना