Какая часть javascript-части команды mongo shell выполняется на сервере?

Вся ли часть javascript в командах оболочки mongo выполняется на сервере или на клиенте или является частичной?

Допустим, у меня есть команда

db.mycollection.find({timestamp:{$lt:new Date()}}).forEach(function(doc){
    db.mycollection.remove(doc);
})
  1. Выполняется ли new Date() на клиенте или на сервере?
  2. Часть forEach выполняется на клиенте или на сервере?

person Dushyant Bangal    schedule 22.09.2018    source источник
comment
Это совершенно правильный вопрос, я не понимаю отрицательного голоса :(   -  person Dushyant Bangal    schedule 15.10.2018


Ответы (1)


Если вы попытаетесь выполнить приведенный выше код в оболочке mongo и включить mongodb профилировщик на сервере на уровне 2, он записывает только следующие операции:

  • db.mycollection.find({отметка времени:{$lt:новая дата()}})
  • db.mycollection.remove(doc)

Оболочка mongo — это интерактивный интерфейс JavaScript для MongoDB.

  • Выполняется ли новая дата() на клиенте или на сервере? - На клиенте
  • Выполняется ли часть forEach на клиенте или на сервере? - На клиенте

Вы можете заметить загрузку ЦП процессом монго на клиенте, если он обрабатывает большие данные.

Вы также можете проверить этот вопрос на SO.

person Atish    schedule 22.09.2018