MongoDB:什么是优选的,在服务器或客户端上进行处理?

时间:2012-09-04 19:56:21

标签: mongodb

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

什么是优选的,为什么:

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

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

2 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:4)

你不应该陷入尝试使用“存储过程”的陷阱,就像许多使用JS函数的人认为的那样。我很好地解释了为什么你不应该在查询中使用JS:is procedure exist in mongodb

真的在MongoDB中进行数据处理有三种选择:

  • 地图缩小
  • 客户端
  • 预聚合。

所有这些方法都更优先,更好。至于哪一个更适合你的情况:这一切都取决于你想要完成的事情。

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