Запрос массива PHP + mongoDB - система голосования ips - PullRequest
1 голос
/ 02 мая 2011

не могли бы вы помочь мне, пожалуйста? Я делаю свою систему голосования в php + mongodb, и я хотел бы сохранить IP-адреса, которые уже проголосовали. Что было бы наилучшим образом? Я думал о том, чтобы сделать это так:

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

Это лучший способ сделать это? Как бы вы сравнили все элементы массива ips, чтобы узнать, не проголосовал ли ip? Список будет выглядеть как (192.168.0.1, 127.0.0.1, 123.45.67.8).

Спасибо!

Ответы [ 2 ]

2 голосов
/ 02 мая 2011

Используйте Уникальный индекс и UPSERT :

$collection->ensureIndex(array('ips'), array('unique' => true));
0 голосов
/ 02 мая 2011

сравнить ip пользователя с массивом IP-адресов с помощью функции PHP in_array ()

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

...