私は現在現在のPHP MongoDB\Driverで作業しています。現在のPHP MongoDB DriverでgeoNearを使用するには?
現在の場所からポイントを取得するには、geoNear
クエリを使用する必要があります。
db.runCommand({geoNear: 'pois', near: [ 52.264633, 6.12485 ], spherical: true, maxDistance: 1000, distanceField: 'distance'})
従来の方法は廃止されているので、私は古いaggregate
機能を使用することはできません。必要な2dsphere index
は、すでにクエリがコンソールで動作し、複数の結果を提供し、設定されています。
現在、私は現在のQuery
またはCommand
クラスで必要なクエリを作成する正しい方法を見つけることを試みています。
私が試したことは次のとおりです。
$query = array(
'geoNear' => 'pois',
"near" => array(
52.264633,
6.12485
),
"spherical" => true,
"maxDistance" => 1000,
"distanceField" => "distance"
);
$cmd = new MongoDB\Driver\Command($query);
$returnCursor = $this->conn->executeCommand("database.pois", $cmd);
$arrReturn = $returnCursor->toArray();
return $arrReturn;
私はこれを使用している場合は、私はこのランタイムエラーが返されます:
"exception": [
{
"type": "MongoDB\\Driver\\Exception\\RuntimeException",
"code": 18,
"message": "Failed to decode document from the server."
}
]"
を私は私の場合のための解決策を見つけることができませんでしたし、また、私はこのエラーの詳細を見つけることができませんでした。
Command
をQuery
まで変更すると、実行は失敗しませんが、結果はありません。
私のMongoDBは、バージョン3.2に私のPHPのバージョンであるPHPバージョン7.0.16-4 + deb.sury.org〜1 +信頼できるとMongoDBのExensionは、あなたが使用することができますバージョン1.2.3
はどんなのがあります
あなたがこれを見つけた場所?私はこれについて何かを見つけることができませんでした。しかし、それは動作します、ありがとう。 – KhorneHoly
ここに行きます。 http://php.net/manual/en/mongodb-driver-manager.executecommand.php – Veeram
まあ、私はこれを完全に見落としました。 – KhorneHoly