2016-04-30 49 views
0

我正在比較MongoDB解決方案與其他數據庫模型的性能,所以我需要在執行查詢時獲得一些準確的時間信息。MongoDB C#驅動程序:當我執行查詢時會發生什麼?

(在我的情況下,使用MongoDB C#驅動程序),當我執行FindFindAsync時,服務器端發生了什麼,以及通過哪些數據?服務器是否執行了查詢,並且是唯一發生的情況,例如,我在該光標上做了ToList(),通過網絡傳輸文檔?

或者當我實際上想要檢索文檔時,查詢只執行(完全或部分)?或者,也許,有關結果的某種信息已通過致電Find傳送?

回答

0

FindFindAsync都允許建立異步查詢以相同的性能,只有:

當你FindAsync,它返回遊標這不會一下子加載的所有文件,但爲您提供接口檢索從DB遊標逐個文檔(這在查詢結果很大時很有用)。

方法Find爲您提供過法ToListAsync內從遊標檢索文件,並在一次返回所有文件更簡單的語法。

但是,除非您要求(通過遊標進行迭代),否則FindFindAsync都不會從服務器檢索任何數據。

希望它有幫助。

+0

對不起,顯然我的問題並不完全清楚。 (儘管你解釋的內容非常有趣並且很好​​知道,所以謝謝!)我的意思是詢問* server *已經完成了什麼處理,也就是說,當我們返回一個遊標時,查詢已經被執行了,或者當它被執行時第一個文件被檢索? –

+0

直到您詢問第一個文檔時,服務器纔會執行任何操作。所以,用你的話說 - 「當檢索到第一個文檔時執行它」。 – MaKCbIMKo

相關問題