MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Разбиране на промените в новия C# драйвер на MongoDB (Async и Await)

Полезно е да разберете основите на async / await защото това е донякъде пропусклива абстракция и има редица клопки.

По същество имате две възможности:

  • Останете синхронни. В този случай е безопасно да използвате .Result и .Wait() на асинхронните повиквания, съответно, напр. нещо като

    // Insert:
    collection.InsertOneAsync(user).Wait();
    
    // FindAll:
    var first = collection.Find(p => true).ToListAsync().Result.FirstOrDefault();
    
  • Преминете към async във вашата кодова база. Правенето му async е доста „заразно“, за съжаление, така че или конвертирате почти всичко в async, или не. Внимавайте, неправилното смесване на sync и async ще доведе до блокиране . Използването на async има редица предимства, тъй като вашият код може да продължи да се изпълнява, докато MongoDB все още работи, напр.

    // 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. Как да получите всички резултати, ако полето за отвиване не съществува в mongodb

  2. Как мога да премахна по-стари записи от колекция в MongoDB?

  3. Запитване на размер на вътрешния масив в MongoDB

  4. Mongo Map Reduce за първи път

  5. MongoDB $max оператор на конвейер за агрегиране