2016-04-30 50 views
0

我正在比较MongoDB解决方案与其他数据库模型的性能,所以我需要在执行查询时获得一些准确的时间信息。MongoDB C#驱动程序:当我执行查询时会发生什么?

(在我的情况下,使用MongoDB C#驱动程序),当我执行FindFindAsync时,服务器端发生了什么,以及通过哪些数据?服务器是否执行了查询,并且是唯一发生的情况,例如,我在该光标上做了ToList(),通过网络传输文档?

或者当我实际上想要检索文档时,查询只执行(完全或部分)?或者,也许,有关结果的某种信息已通过致电Find传送?

回答

0

FindFindAsync都允许建立异步查询以相同的性能,只有:

当你FindAsync,它返回游标这不会一下子加载的所有文件,但为您提供接口检索从DB游标逐个文档(这在查询结果很大时很有用)。

方法Find为您提供过法ToListAsync内从游标检索文件,并在一次返回所有文件更简单的语法。

但是,除非您要求(通过游标进行迭代),否则FindFindAsync都不会从服务器检索任何数据。

希望它有帮助。

+0

对不起,显然我的问题并不完全清楚。 (尽管你解释的内容非常有趣并且很好​​知道,所以谢谢!)我的意思是询问* server *已经完成了什么处理,也就是说,当我们返回一个游标时,查询已经被执行了,或者当它被执行时第一个文件被检索? –

+0

直到您询问第一个文档时,服务器才会执行任何操作。所以,用你的话说 - “当检索到第一个文档时执行它”。 – MaKCbIMKo

相关问题