MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

base64 untuk memandu ke base64

Urutan byte dalam GUID tidak sama dengan urutan ToString() mereka representasi pada sistem little-endian.

Anda harus menggunakan guid.ToByteArray() daripada menggunakan ToString().

Dan, Anda harus menggunakan new Guid(byte[] b) untuk membangunnya, daripada $str .

Untuk mengekspresikan ini dalam C# murni:

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.
}

Lihat "Struktur Dasar" dari artikel GUID di Wikipedia untuk detail lebih lanjut.

Anda akan melihat bahwa sebagian besar data disimpan dalam endianness "Asli"... dari sanalah kebingungan itu berasal.

Mengutip:

Sunting:

Versi Powershell:

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

Sebagai peringatan tambahan, Anda dapat secara opsional memangkas "==" dari ujung string Anda, karena itu hanya pengisi (yang mungkin membantu jika Anda mencoba menghemat ruang).



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Bagaimana saya bisa menjalankan perintah MongoDB dengan menanyakan koleksi $cmd khusus?

  2. return Model.create(arr).exec() tidak berfungsi di luwak

  3. Grup kerangka kerja Agregasi Mongodb dan urutkan

  4. Luwak:Baca di ReplicaSet

  5. MongoDB mendapatkan SubDocument