Продукция, чтобы утешить в серверной стороне монго JavaScript

Кто-либо выяснил способ произвести к пульту в функции JavaScript, выполняющей серверную сторону в монго? Отличный код ниже:

DBCollection JS = db.getCollection('system.js')
js.save([
    '_id' : 'product',
    value : new Code("""
        function(x,y) {
            alert('product called!'); //blows up...
            console.log('product called!'); //blows up...
            return x*y;
        }
    """
    )
])
js.eval('product(2,3)')
4
nl ja de
js печать() функция может, хотя я не могу думать о причине для.Edit: На самом деле я понятия не имею, почему эта часть кода даже существует, вы - evaling к пронизывавшему JS двигателю сингла, встроенному в MongoDB
добавлено автор Sammaye, источник
Продолжаются Nah это - часть MongoDB из-за LRU OS ваш. Так как это - массовый сценарий обновления, вы действительно заботитесь об этом об обвиняющей странице? Я имею в виду вас, конечно, вероятно, don' t возражают, если это требует времени? Это - просто оценка, так плохо обращается с сервером, плюс он doesn' t работают с sharding и f курсом с этим, вы берете замок JavaScript.
добавлено автор Sammaye, источник
Ах хорошо that' s лучше да можно управлять этим через превосходный пульт. О рабочем наборе очень трудно решить это, обновляя миллионы отчетов последовательно, даже если бы вы смогли использовать атомные замки и т.д. с тех пор, конечно, то MongoDB должен нумеровать страницы в документах, это can' t делают это любой другой путь. Хм, интересно через, если необходимо было сделать требование обновления, используя многократные курсоры в петле, таким образом, оно разрушает каждый курсор после того, как как 1 миллион отчетов интересно, могло ли бы это обмануть LRU в отказ от старого, пронумерованного страницы в данных...
добавлено автор Sammaye, источник
Это сказанное, хотя, это isn' t истинная проблема, пока это doesn' t разбивают ваш сервер который это shouldn' t, контроллер памяти должен обнаружить, когда другие приложения хотят память и должны дать ее их, надо надеяться.
добавлено автор Sammaye, источник
Хм я должен признать, что теперь терплю неудачу, я действительно помню что-то о массовых обновлениях, но я имею, с тех пор забыл:) Кто-то еще мог бы знать, или это могла бы быть хорошая регистрация оценки и что на mongodb-пользователь группа Google, я уверен, что кто-то там мог бы быть в состоянии добраться до сути относительно него. Я хочу ответ по умолчанию увеличивать RAM, но это isn' t действительно хороший ответ, так как это - то от работы и isn' t действительно представительный для вашего рабочего набора.
добавлено автор Sammaye, источник
@Sammaye - причина: просто хочу периодически указать на прогресс длительного сценария пакетного обновления. печать() работает отлично. Добавьте его как ответ, таким образом, я могу принять его!
добавлено автор jkschneider, источник
@Sammaye - хороший вопрос на том, чтобы редактировать. I' m не уверенный также, почему это существует также. I' m находящий это, когда необходимо обновить миллионы документов за один раз в партии это Mongo' s рабочий набор продолжает расти, пока он не потребляет всю память на машине и начинает трудно обвинять как сумасшедший... I' m надеющийся, что выполнение серверной стороны можно рассматривать немного по-другому.
добавлено автор jkschneider, источник
Я didn' t намереваются использовать оценку в конце действительно. Доктора указывают, что управление .js файлы через раковину монго на сервере не захватывает и является лучшим для пакетной административной работы. Кодекс выше был просто подтверждением концепции JavaScript, а не способа, которым это будет выполнено, я предполагаю.
добавлено автор jkschneider, источник
Интересно достаточно вчера я попробовал метод диапазона, чтобы принести, говорят 1000 отчетов за один раз и обновляют их. Выполнение было все еще последовательно, но никакой курсор не имел больше, чем 1000 документов. Я думал, что монго могло бы угробить старые пронумерованные страницы данные, но увы, это не сделало... Это doesn' t разбивают сервер, но он замедляет прогресс до такой степени, что обновление больше, чем приблизительно миллион отчетов берет предельно долго.
добавлено автор jkschneider, источник

1 ответы

Есть две функции, которые можно использовать, чтобы произвести из JavaScript, который является eval'd на сервере MongoDB (включая, Наносят на карту/Уменьшают функции):

  • print() - standard JavaScript print
  • printjson() - print as JSON

Обе функции испустят свою продукцию в mongod регистрация и могут быть полезны для отладки.

10
добавлено
DBA - русскоговорящее сообщество
DBA - русскоговорящее сообщество
1 345 участник(ов)

Общаемся и обсуждаем темы, посвященные DBA, PostgreSQL, Redis, MongoDB, MySQL, neo4j, riak и т.д. См. также: @devops_ru, @kubernetes_ru, @docker_ru, @nodejs_ru Рекомендуем сразу отключить уведомления, чтобы пребывание здесь было полезным и комфортным.

MongoDB Russian
MongoDB Russian
1 086 участник(ов)

> db.stats() https://combot.org/chat/-1001035023078