在Mongo DB分片集群中使用PHP调用存储过程/函数

时间:2014-11-07 06:44:18

标签: php mongodb sharding

我正在使用带有两个分片群集配置的MongoDB 2.6。 我想调用我在MongoDB中创建和存储的函数dataStats()。这是我的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 command which is not supported with sharded collections。这个问题有解决方法吗?我们如何从PHP调用分片MongoDB中的存储过程?

1 个答案:

答案 0 :(得分:1)

没有解决方法。 db.eval不适用于分片集合。无论如何,你应该尽可能避免使用它。