2
をPHPにはマップと骨材とのMongoDBシェルクエリを変換します私はMongoDBのバージョン3.0でこのクエリをしなければならなかったので、次の関係データベースクエリは私がPHPコードに変換するに苦労していますMongoDBのクエリを書い
Select ip,count(*)
from audit
where ip not in (select ip from geoip)
group by ip
の同等のは、私は$ Lの利点を活用することができませんでした答えに示唆されているようにookup。
以下のPHPコードは上記の目的を達成し、期待通りに動作します。ジオープコレクションからはっきりとした唇が得られます。その結果を渡し、監査コレクションに集計を行い、目的の結果を得ます。次のように
は$geoipcolln = $this->dbConn->selectCollection('geoip');
$geoips = $geoipcolln->distinct('ip');
$match = array('ip' => array('$nin' => $geoips));
$result = $this->collection->aggregate(
array(
'$match' => $match
),
array('$group' => array(
'_id' => '$ip',
'count' => array('$sum' => 1.0),
))
);
:その後としてPHPに変換することができ
パフォーマンスの観点から優れた代替手段です。しかし、私は現在、mongodb 3.0バージョンを実行しています。 $ lookupのように見える3.2バージョンが必要です。この時点で、私はアップグレードすることはできません。 – FoxShrill