我正在使用運行PHP 5.4和PHP Mongo驅動程序from here的Windows xampp服務器。通過PHP驅動程序MongoDB查詢
我使用查詢數據:
$results = $collection->find(array('league'=>'nba'));
foreach ($results as $user) {
var_dump($user);
echo "</br>";
}
結果:
array(5) { ["_id"]=> float(3.1677054844223E+18) ["league"]=> string(3) "nba" ["homeTeam"]=> string(10) "Washington" ...
我的ID轉換爲字符串:
$cursorID = new MongoID($result['_id']);
$gameLink = "<a href='/home/game/".$cursorID."'>".$cursorID."</a>";
該ID從浮法轉換到這個值:50fde048f1568a204c0002a1 並試圖查詢遊戲詳情:
$gameID = new MongoID("50fde048f1568a204c0002a1"); //default
$con = new Mongo("mongodb://mongo.example.net"); // Connect to Mongo Server
$db = $con->selectDB('mydb');
$games = $db->games->find(array('_id'=>$gameID));
但是這不會返回任何結果。
關於可能出錯的想法?
什麼是MongoID()函數?是否可以反轉GameID(從50fde048f1568a204c0002a1到3.1677054844223E + 18)? –
嗯,你的PHP驅動程序根本不會識別'objectId's,文檔在你的數據庫中看起來是什麼?你能粘貼一個控制檯輸出嗎?您的_id可能已經改變類型,如果是這樣,那麼你不能通過objectid – Sammaye
@Sammaye查詢控制檯輸出是這樣的:/ * 0 */ { 「_id」:NumberLong(「3292523252251813670」), 「league」:「ncaab 」, 「gameTime」: 「2013-01-07T18:30:00」, 「homeTeam」: 「辛辛那提」, 「homeRank」:14, 「awayTeam」: 「聖母」, 「awayRank」: 21 } /* 1 */{ 「_id」:NumberLong( 「6877183749884304734」), 「聯賽」: 「NCAAB」, 「gameTime」: 「2013-01-07T19:00:00」, 「homeTeam」:「Penn St.」, 「awayTeam」:「Indiana」, 「awayRank」:5 } – esimran