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"]);*/
:私はメソッドの削除にCollection.phpのソースコードにコメント、この問題を解決するために