服务器上执行的 mongo shell 命令的 javascript 部分有多少?

How much of mongo shell command's javascript part executed is on server?

mongo shell 命令中的所有 javascript 部分是在服务器上还是在客户端上执行的,还是部分执行的?

假设我有一个命令

db.mycollection.find({timestamp:{$lt:new Date()}}).forEach(function(doc){
    db.mycollection.remove(doc);
})
  1. new Date()是在客户端执行还是在服务器端执行?
  2. forEach部分是在客户端执行还是在服务端执行?

如果你尝试将上面的代码执行到mongo shell 并在2级服务器上启用mongodb profiler,它只记录以下操作:

  • db.mycollection.find({时间戳:{$lt:新日期()}})
  • db.mycollection.remove(文档)

mongo shell 是 MongoDB 的交互式 JavaScript 界面。

  • new Date()是在客户端执行还是在服务端执行? - 在客户端
  • forEach部分是在客户端执行还是在服务端执行? - 在客户端

如果客户端处理大数据,您可以注意到 mongo 进程在客户端上的 CPU 利用率。

您也可以在 SO 上查看此问题。