我正在使用运行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