我使用PHP和MongoDB來痛苦並獲得最接近我的位置的點。但我有一個問題。
當我使用mongo控制檯時,它會返回值,但是當我通過PHP代碼進行操作時,它會返回一個空對象。
PHP代碼:
$connection = new MongoClient("mongodb://localhost");
$db = $connection->collection;
$collection = $db->user_location;
// There are many differnt queries (by token, by email...)
if (isset($_GET['email'])) {
$query = array(
//'email' => array('$neq' => $_GET['email']),
'loc' => array(
'$near' => array(
'lon' => floatval($_GET['longitude']),
'lat' => floatval($_GET['latitude']),
'$maxDistance' => intval($_GET['distance']))));
}
$maxDistance = $_GET["distance"];
$lon = $_GET['longitude'];
$lat = $_GET['latitude'];
$cursor = $collection->find($query);
if ($cursor) {
echo json_encode($cursor);
} else {
echo "{ 'status' : 'false' }";
}
這是蒙戈控制檯使用的一個示例: db.user_location.ensureIndex({LOC: 「2D」})
db.user_location.find( ) {「_id」:ObjectId(「51dbe817617c6df061000000」),「email」:「zgz」,「loc」:{「lon」:-0.88588498,「lat」:41.68035677},「date」:「 2013)06:38:15「} db.user_location.find({」loc「:{」$ near「:{」lon「: - 0.88588498,」lat「:41.68035677},」$ maxDistance「:99}}) {「_id」:ObjectId(「51dbe817617c6df061000000」),「email」:「zgz」,「loc」:{「lon」:-0.88588498,「lat」:41.68035677},「date」:「 06:38:15「}
如果我在我的PHP代碼中使用相同的值,它將返回空遊標。爲什麼?謝謝!
有沒有需要「解決」添加到您的問題在這裏:這是不是一個論壇,這是一個Q&A網站的答案是獨立的實體:所以你可以添加你自己的答案,並選擇它作爲「接受」 。你可以從你的問題中刪除答案:) – Nanne
我是新來的;) – EnriMR
不用擔心,你的答案+1:D – Nanne