大家好,所以我从MySQL切换到MongoDB,因为我的服务器运行效率更高。我需要更新我的一个页面,我已经找到了大部分代码,我没有得到任何数据库错误我相信我只是没有按正确的顺序放置数据。当页面加载时没有内容。
这是我的数据库信息,将有多个数组,如下面的数据库测试中的数组。我希望将所有带有PENDING NameState的内容拉到表中。
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>";
先谢谢。
答案 0 :(得分:0)
如果它是数据的确切格式,则问题是,它不是JSON格式。您的内容必须是JSON格式,而不是任意字符串。 我在名为&#39; testData&#39;
的集合中添加了两个文档> 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" } }