猫鼬在哪里执行查询?

时间:2020-05-29 14:41:56

标签: node.js mongoose

我想更好地了解猫鼬的工作原理。

我在serverA中有nodejs,在serverB中有mongodb。

当我运行.find(..)或任何其他猫鼬函数时,它们是否在serverB上运行并使用tcp返回结果到我的nodejs应用程序?还是要求serverB获取所有行,然后在serverA中运行函数?

1 个答案:

答案 0 :(得分:0)

Mongoose仅将面向对象的代码转换为各种MongoDB查询。查询始终在服务器上运行-数据库引擎将执行计算,而Node.js客户端将收到现成的结果。 Mongoose(serverA)尝试优化大多数查询(例如经典关系数据库ORM),并将CPU昂贵的任务卸载到MongoDB(服务器B)中-排序,过滤,聚合等。查询并且不运行客户端过滤/排序,您不必担心Node.js主线程会被CPU密集型任务阻塞。