我使用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