2016-07-06 81 views
2

目前我在MongoDB收集数据的工作中PHP表,在我MongoDB收集有如下数据MongoDB的NumberLong显示

> db.AETOM.find().pretty() 
{ 
    "_id" : { 
     "UCODE" : NumberLong("413010192215382"), 
     "DCODE" : NumberLong("990004908640390") 
    }, 
    "Total" : 14 
} 
{ 
    "_id" : { 
     "UCODE" : NumberLong("413010192171534"), 
     "DCODE" : NumberLong("990004393658160") 
    }, 
    "Total" : 562 
} 
{ 
    "_id" : { 
     "UCODE" : NumberLong("413011193047063"), 
     "DCODE" : NumberLong("990004298968470") 
    }, 
    "Total" : 99 
} 

,这是我使用的显示记录的代码

<?php 

     $m = new MongoClient(); 
     $db = $m->selectDB('MapData'); 
     $collection = new MongoCollection($db,'AETOM'); 

     $cursor = $collection->find(); 
     $cursor->limit(10); 
     echo "<html><head></head><body>"; 
     $data = "<table style='border:1px solid red;"; 
     $data .= "border-collapse:collapse' border='1px'>"; 
     $data .= "<thead>"; 
     $data .= "<tr>"; 
     $data .= "<th>UCODE</th>"; 
     $data .= "<th>DCODE</th>"; 
     $data .= "<th>Total</th>"; 
     $data .= "</tr>"; 
     $data .= "</thead>"; 
     $data .= "<tbody>"; 
     foreach($cursor as $document) { 
      $data .= "<tr>"; 
      $data .= "<td>" . $document["UCODE"] . "</td>"; 
      $data .= "<td>" . $document["DCODE"] . "</td>"; 
      $data .= "<td>" . $document["Total"]."</td>"; 
      $data .= "</tr>"; 
     } 
     $data .= "</tbody>"; 
     $data .= "</table>"; 
     echo $data; 
     echo "</body></html>"; 
?> 
当我运行它

,它只显示“总计”价值,UCODE和DCODE领域不显示任何东西,当我与终端检查显示它下面的错误

PHP通知:未定义指数:UCODE在 /var/www/html/MongoDBT/test2.php上线23

PHP说明:未定义指数:DCODE在 /无功/网络/ HTML/MongoDBT /第22行的test2.php

请亲切地帮我解决问题。

+0

尝试用'$文件[ “_ ID” ] [“UCODE”]'和'$ document [“_ id”] [“DCODE”]'并告诉工作与否? –

+1

是的,它工作:),非常感谢你 – Kavinda

+0

Kavinda很高兴帮助你。欢呼:) :) :) –

回答

1

由于UCODEDCODE成为内侧_id阵列,所以来接他们,你必须做如下图所示: -

$document["_id"]["UCODE"] instead of $document["UCODE"] 

$document["_id"]["DCODE"] instead of $document["DCODE"]