Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MongoDB:最好是在服务器上还是在客户端上处理?_Mongodb - Fatal编程技术网

MongoDB:最好是在服务器上还是在客户端上处理?

MongoDB:最好是在服务器上还是在客户端上处理?,mongodb,Mongodb,我为MongoDB使用.NET驱动程序。 我的问题是: 什么更可取以及为什么: 在MongoDB服务器上使用javascript处理数据 或 将thd数据加载到客户端并使用驱动程序方法完成所有工作?如果可能,您应该避免在mongodb服务器上使用JavaScript处理数据。原因是JavaScript引擎是单线程的。这意味着一次只能有一个线程运行JavaScript引擎。可以想象,如果您有多个客户端连接到mongodb,这将极大地影响性能——所有这些请求都将被序列化。您不应该像许多使用JS函数的

我为MongoDB使用.NET驱动程序。 我的问题是:

什么更可取以及为什么:

在MongoDB服务器上使用javascript处理数据


将thd数据加载到客户端并使用驱动程序方法完成所有工作?

如果可能,您应该避免在mongodb服务器上使用JavaScript处理数据。原因是JavaScript引擎是单线程的。这意味着一次只能有一个线程运行JavaScript引擎。可以想象,如果您有多个客户端连接到mongodb,这将极大地影响性能——所有这些请求都将被序列化。

您不应该像许多使用JS函数的人所认为的那样,陷入试图使用“存储过程”的陷阱。我很好地解释了为什么不应该在这里的查询中使用JS:

对于MongoDB中的数据处理,您有三种选择:

  • 地图缩小
  • 客户端
  • 预聚合
所有这些方法都更可取,而且效果更好。至于哪一个在你的情况下更可取:这完全取决于你想要完成什么

当然,从2.2(刚刚发布)开始,您就得到了聚合框架,它绕过了JS引擎,为您提供了更大的灵活性