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

बेस 64 को गाइड करने के लिए बेस 64

GUID में बाइट्स का क्रम उनके ToString() . के क्रम के समान नहीं है लिटिल-एंडियन सिस्टम पर प्रतिनिधित्व।

ToString() का उपयोग करने के बजाय आपको guid.ToByteArray() का उपयोग करना चाहिए।

और, आपको new Guid(byte[] b) . का उपयोग करना चाहिए इसे बनाने के लिए, बजाय $str . के ।

इसे शुद्ध C# में व्यक्त करने के लिए:

public string GuidToBase64(Guid guid)
{
    return System.Convert.ToBase64String(guid.ToByteArray());  // Very similar to what you have.
}

public Guid Base64Toguid(string base64)
{
    var bytes = System.Convert.FromBase64String(base64);
    return new Guid(bytes);  // Not that I'm not building up a string to represent the GUID.
}

GUID आलेख के "मूल संरचना" अनुभाग पर एक नज़र डालें। अधिक जानकारी के लिए विकिपीडिया पर।

आप देखेंगे कि अधिकांश डेटा "मूल" अंतहीनता में संग्रहीत होता है ... यही वह जगह है जहां से भ्रम आ रहा है।

उद्धृत करने के लिए:

संपादित करें:

पॉवरशेल संस्करण:

function base64toguid  
{  
    param($str);  
    $b = [System.Convert]::FromBase64String($str);
    $g = new-object -TypeName System.Guid -ArgumentList (,$b);
    return $g;
}

एक अतिरिक्त चेतावनी के रूप में, आप वैकल्पिक रूप से अपनी स्ट्रिंग के अंत से "==" को ट्रिम कर सकते हैं, क्योंकि यह केवल पैडिंग है (यदि आप स्थान बचाने की कोशिश कर रहे हैं तो इससे मदद मिल सकती है)।



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. सरणी मानों के योग के साथ MongoDB एकत्रीकरण

  2. मोंगोडब दस्तावेज़ में सबस्ट्रिंग को कैसे बदलें

  3. MongoDB स्ट्रिंग प्रकार को फ्लोट प्रकार में बदलें

  4. कई दस्तावेज़ों को मोंगोडब डेटाबेस में जोड़े जाने से कैसे रोकें

  5. नेवला में एक और शर्त पर एक मॉडल के विशिष्ट क्षेत्र को कैसे खोजें?