sql >> Database >  >> NoSQL >> MongoDB

De wijzigingen in het nieuwe C#-stuurprogramma van MongoDB begrijpen (Async en Await)

Het is handig om de basisprincipes van async te begrijpen / await omdat het een wat lekkende abstractie is en een aantal valkuilen heeft.

In wezen heb je twee opties:

  • Blijf synchroon. In dit geval is het veilig om .Result . te gebruiken en .Wait() op de asynchrone oproepen, b.v. zoiets als

    // Insert:
    collection.InsertOneAsync(user).Wait();
    
    // FindAll:
    var first = collection.Find(p => true).ToListAsync().Result.FirstOrDefault();
    
  • Ga async in je codebase. Async doen is helaas nogal 'besmettelijk', dus ofwel converteer je vrijwel alles naar async, of niet. Voorzichtig, het onjuist mengen van sync en async leidt tot impasses . Het gebruik van async heeft een aantal voordelen, omdat uw code kan blijven draaien terwijl MongoDB nog werkt, bijvoorbeeld

    // 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. Hoe 2 velden in Spring Data MongoDB te vergelijken met behulp van een query-object

  2. How-to:gebruik de Apache HBase REST-interface, deel 3

  3. Redis-transacties

  4. Snelste manier om een ​​histogram van arraygroottes te krijgen met behulp van het MongoDB-aggregatieframework