Питон, монго + паук обезьяна - PullRequest
0 голосов
/ 18 февраля 2010

Хорошо, так что это не совсем тот вопрос, на который я ожидаю полного ответа, но здесь идет ...

В настоящее время я использую драйвер python для запуска данных в экземпляре Монго, и все это хорошо в мире. Теперь я хочу иметь возможность получать данные из Монго и оценивать каждую запись в коллекции. Теперь мне нужно передать в эту оценку скрипт, который будет смотреть на строку данных и, если условие выполнено, вернуть true, т.е.

(КОД ПСУДО)

foreach(row in resultSet)
 if(row.Name=="Chris) return true

return false

Теперь сценарий, который я использую для оценки каждого элемента в строке, должен быть как бы песочницей с ограниченными функциональными возможностями / привилегиями безопасности.

Другими словами, код будет удален, и я не хочу, чтобы он имел права на то, чтобы включать внешние библиотеки, вызывать удаленные серверы или иметь доступ к любым файлам на сервере и т. Д. *

Имея это в виду, я знаю, что в монго для написания запросов используется нечто, называемое обезьяной-пауком (которую я собираю назвать оценщиком JS). Интересно, можно ли взять результат вызова монго и передать его в оцененную функцию javascript, используя обезьяну-паука (каким-то образом), чтобы достичь того, чего я добиваюсь? Если это так, это будет достаточно безопасно.

Если честно, я пишу этот вопрос, и я понимаю, что он звучит очень похоже на один из тех вопросов типа «пожалуйста, помогите, как кодировать мир», но любые указатели были бы полезны.

1 Ответ

3 голосов
/ 18 февраля 2010

Вы смотрели на $where предложения в MongoDB? Похоже, что это в значительной степени даст вам именно то, что вы ищете. В PyMongo это будет выглядеть примерно так:

db.foo.find().where("some javascript function that will get applied to each document matched by the find")
...