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

Memahami perubahan pada driver C# baru MongoDB (Async dan Await)

Sangat membantu untuk memahami dasar-dasar async / await karena abstraksinya agak bocor dan memiliki sejumlah jebakan.

Pada dasarnya, Anda memiliki dua opsi:

  • Tetap sinkron. Dalam hal ini, aman menggunakan .Result dan .Wait() pada panggilan async, masing-masing, mis. sesuatu seperti

    // Insert:
    collection.InsertOneAsync(user).Wait();
    
    // FindAll:
    var first = collection.Find(p => true).ToListAsync().Result.FirstOrDefault();
    
  • Pergi async di basis kode Anda. Sayangnya, melakukan async cukup 'menular', jadi Anda mengubah hampir semuanya menjadi async, atau tidak. Hati-hati, mencampurkan sinkronisasi dan asinkron secara tidak benar akan menyebabkan kebuntuan . Menggunakan async memiliki sejumlah keuntungan, karena kode Anda dapat terus berjalan selama MongoDB masih berfungsi, mis.

    // FindAll:
    var task = collection.Find(p => true).ToListAsync();
    // ...do something else that takes time, be it CPU or I/O bound
    // in parallel to the running request. If there's nothing else to 
    // do, you just freed up a thread that can be used to serve another 
    // customer...
    // once you need the results from mongo:
    var list = await task;
    


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Masalah dengan instalasi Mongo DB pada Windows 8.1

  2. Tidak dapat membuat mongoid bekerja dengan Rails 4

  3. Luwak menghapus (menarik) dokumen dalam array, tidak berfungsi dengan ObjectID

  4. Node.js, MongoDB - Memasukkan/memperbarui banyak dokumen dan mengirim satu respons

  5. mongo db desain pengikut dan umpan, di mana saya harus menyematkan?