簡體   English   中英

什么約定對異步檢索MongoDb文檔列表是正確的?

[英]What convention is correct to retrieve a list of MongoDb documents asynchronously?

我遇到了兩種不同的方式來異步檢索MongoDB文檔列表。 一個是MongoDB建議的,另一個是我目前已實現的東西。

1)由MongoDB建議:

public async Task<IEnumerable<T>> GetAllAsync()
{
    return await _collection.Find(x => true).ToListAsync();
}

2)我目前有一種方法:

public async Task<IEnumerable<T>> GetAllAsync()
{
    var result = await _collection.FindAsync(x => true);
    return await result.ToListAsync();
}

這有什么區別? 第一種方法真的是異步的嗎? 它不是使用Find()同步檢索然后異步返回列表嗎?

對此有一些見識會有所幫助。 謝謝。

Find不是完成的操作,它只是創建一個查詢對象來查找對象,您可以使用它們以流暢的方式添加更多搜索參數。

第二種方法將返回一個IAsyncCursor ,它允許您異步迭代集合,但不允許您向該調用中添加更多搜索參數。

因此,回答您的問題:兩種方式都是異步的,它們只是搜索和返回文檔的兩種不同方式。

請參閱在IFindFluent (通過調用Find返回)和IAsyncCursor (通過調用FindAsync返回)上Find的方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM