コレクション内のランダムな日付を更新しようとしています。
以下のコードは、同じランダムな日付ですべてのエントリを更新しています。すべてのエントリをループ処理して、それぞれに異なる日付を指定したいと思います。
インデックスを使用して動作させることができました。
大規模なデータセットをインデックス化する最良の方法は何ですか?
$date_1 = strtotime(date('Y-m-d H:i:s'));
$date_2 = strtotime("2012-07-26 09:00:00");
$m = new Mongo();
$db = $m->comedy;
$collection = $db->cartoons;
$cursor = $collection->find();
$query = array('_id'=>array('$exists' => true));
foreach ($cursor as $obj){
$randomDate = rand($date_1,$date_2);
$collection->update(
$query,
array('$set' => array("ts"=> new MongoDate($randomDate) )),
array('multiple' => true)
);
}
編集:
foreach ($cursor as $obj){
$randomDate = rand($date_1,$date_2);
$id = $obj["_id"];
$collection->update(
array('_id'=> $id),
array('$set' => array("ts"=> new MongoDate($randomDate) )),
array('multiple' => true)
);
}