1

私を助けてくれませんか?私は php + mongodb で投票システムを作成していますが、既に投票した IP アドレスを保持したいと考えています。最善の方法は何ですか?私は次のようにすることを考えていました:

$ip=$_SERVER['REMOTE_ADDR'];
$ipData = array('$push' => array('ips' => $ip), '$inc' => array('votes' => 1));
$collection->update(array( '_id' => $id), $ipData);

これが最善の方法ですか?配列のすべての要素を比較してips、IPがまだ投票されていないかどうかを確認するにはどうすればよいですか? リストは のようになります(192.168.0.1, 127.0.0.1, 123.45.67.8)

ありがとうございました!

4

2 に答える 2

2

Unique IndexUPSERTを使用します。

$collection->ensureIndex(array('ips'), array('unique' => true));
于 2011-05-02T14:32:05.340 に答える
-3

PHP関数in_array()を使用して、ユーザーのIPをIPの配列と比較します。

http://php.net/manual/en/function.in-array.php

于 2011-05-02T14:20:41.197 に答える