Подскажите, пожалуйста, почему я не могу удалить из записей коллекции идентификаторы, которые есть в списке с помощью mongodb $ in, но я могу удалить их, если я использую драйвер mongodb напрямую. Здесь идентификаторы _id генерируются в mongodb автоматически.
Это работает:
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));
Но использование метода remove класса 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'];
}
}
Спасибо.