2012-02-23 8 views
0

mongodb $を使用してリストにあるIDを持つコレクションレコードから削除できない理由を教えてください。mongodbドライバを使用すると削除できます直接。ここでは、idはmongodbで自動的に生成される_idです。 この1作品:mongodb shantyライブラリのあるIDを持つ文書を削除する方法

array_walk($ids, function(&$item, $key) { $item = new MongoId(trim($item)); }); 

$conditions = array('_id' => array('$in' => $ids), 
       );  

$mongo = new Mongo(); 
$db = $mongo->test; 
$collection = $db->mycollection; 
$result = $collection->remove($conditions, array('safe' => true)); 

しかし、同じデータを持つ何らかの理由で動作しないクラスShanty_Mongo_Documentの方法削除を使用して:

class MyDocument extends Shanty_Mongo_Document 
{ 

    public static function bulkDelete($ids) 
    { 

     array_walk($ids, function(&$item, $key) { $item = new MongoId(trim($item)); }); 

     $conditions = array('_id' => array('$in' => $ids) 
          );   
     $result = self::remove($conditions, array('safe' => true)); 
     return $result['n'];   
    } 
} 

はありがとうございます。仕事で$とその条件の後

/*  if (array_key_exists('_id', $criteria) && !($criteria["_id"] instanceof MongoId)) { 
       $criteria["_id"] = new MongoId($criteria["_id"]);*/ 

:私はメソッドの削除にCol​​lection.phpのソースコードにコメント、この問題を解決するために

答えて

0

。ライブラリの将来のバージョンで修正されるかもしれません。

関連する問題