带有'无效对象ID'消息的未捕获异常'MongoException'

时间:2013-08-13 01:03:52

标签: php mongodb

我有一个很好用的PHP代码,但在我更新Mongo(2.4.4)和mongo驱动程序for php(1.4.2)后,我的代码开始产生致命错误。

产生错误的行是这一行

$something = new MongoId($some);

它会产生错误:

Fatal error: Uncaught exception 'MongoException' with message 'Invalid object ID'

当然,我可以回滚我的更新,但有什么想法我怎么能修复它而不回滚?

1 个答案:

答案 0 :(得分:4)

很可能这个错误是因为您提供的错误$some。 现在,您必须将正确的MongoID传递给new MongoId()构造函数。

所以new MongoId('51e1eefc065f908c10000411')即可,但new MongoId('-6')会产生错误。

我正在使用try catch来处理这个问题。

try {
    $something = new MongoId($some);
} catch (MongoException $ex) {
    $something = new MongoId();
}

所以我认为this documentation有点过时,应该改变。