Вызов хранимой процедуры / функции с помощью PHP в сегментированном кластере БД Mongo

0

Я использую MongoDB 2.6 с двумя конфигурациями кластерных кластеров. Я хочу вызвать функцию dataStats(), которую я создаю и сохраняю в MongoDB. Это мой PHP-скрипт:

$client = new Mongo();
$db = $client->mydata;

$db->system->js->save(array("_id"=>"dataStats", 
   "value"=>new MongoCode("function() { ... }")));

$db->execute("dataStats()");

Этот код дает мне эту ошибку:

  'err' => 'Error: can\'t use sharded collection from db.eval',
  'code' => 16722

Причиной этого является $db-> метод execute использует команду Mongo db.eval, которая не поддерживается окольными коллекциями. Есть ли обходной путь для этой проблемы? Как мы можем вызвать хранимую процедуру в отложенном MongoDB от PHP?

Теги:
sharding

1 ответ

1

Там нет обходного пути. db.eval не работает с обложенными коллекциями. Во всяком случае, вы должны избегать его использования.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню