我正在将MongoDB解决方案的性能与其他数据库模型进行比较,因此我需要在执行查询时获得一些准确的时序信息。
(在我的例子中,使用MongoDB C#驱动程序),当我执行Find
或FindAsync
时,服务器端究竟发生了什么以及传递了什么数据?服务器执行查询是否是唯一的事情,例如,我对该游标进行ToList()
,通过网络传输文档?
或者,当我真正想要检索文档时,查询是仅执行(全部或部分)?或者,有关结果的某些信息已经通过调用Find
?
答案 0 :(得分:0)
Find
和FindAsync
都允许以相同的性能构建异步查询:
当您FindAsync
时,它会返回不会一次加载所有文档的光标,但会为您提供逐个检索文档的界面来自数据库游标(如果查询结果很大,它会很有用)。
方法Find
通过方法ToListAsync
为您提供更简单的语法,其中从光标中检索文档并一次性返回所有文档。
但是Find
和FindAsync
都没有从服务器检索任何数据,直到你要求它(按游标迭代)。
希望,这有帮助。