Mongo-DB将数据拉到php表中


Mongo DB pull data to php table

大家好,我从MySQL切换到MongoDB,因为我的服务器在上面运行的效率要高得多。我需要更新我的一个页面,我已经找到了大部分代码,我没有得到任何数据库错误。我相信我只是没有按正确的顺序排列数据。加载页面时没有内容。

这是我的数据库信息,在数据库测试中会有多个像下面这样的数组。我希望它将所有具有待定名称状态的名称拉到表中。

 array(
"_id"=>100000005,
"dclass"=>"Distributed",
"fields"=>array(
    "Name"=>array(
        "_0"=>"Testing",
    ),
    "NameState"=>array(
        "_0"=>"PENDING",
    ),
     'setName': {
        '_0': 'test name'

这是我的数据库查询$m是用我的数据库连接定义的

$search = $m->fields->(array('NameState'=>'PENDING'));

这是我想要显示id、当前setname和名称的表。

foreach ($SEARCH as $row) {
                echo "<tr>";
                $ID = $row['_id'];
                echo "<td>" . $row['_id'] . "</td>";
                echo "<td>" . $row['SetName'] . "</td>";
                echo "<td>" . $row['Name'] . "</td>";
                $NAME = $row['Name'] . "</td";
                echo "</tr>";

提前感谢。

如果它是数据的确切格式,那么问题是,它不是JSON格式。您的内容必须是JSON格式,而不是任何任意字符串。我在名为"testData"的集合中添加了两个文档

> db.testData.find()
{ "_id" : 100000005, "dclass" : "Distributed", "fields" : { "Name" : "Testing", "NameState" : "PENDING" } }
{ "_id" : 100000006, "dclass" : "Distributed", "fields" : { "Name" : "Testing Excluded", "NameState" : "NOT PENDING" } }

在php中,我的查询是这样的,

$m = new 'MongoClient();
$collection = $m->selectCollection('mydb', 'testData');
$list = $collection->find();
$query = array('fields.NameState' => 'PENDING');
$cursor = $collection->find($query);
foreach ($cursor as $doc) {
    var_dump($doc);
}

结果是:

array(3) { ["_id"]=> float(100000005) ["dclass"]=> string(11) "Distributed" ["fields"]=> array(2) { ["Name"]=> string(7) "Testing" ["NameState"]=> string(7) "PENDING" } }