2014-10-29 2 views
0

안녕하세요. MySQL에서 MongoDB로 전환하는 것이 좋습니다. 내 서버가 훨씬 효율적입니다. 내 페이지 중 하나를 업데이트해야합니다. 대부분의 코드를 알아 냈습니다. 데이터를 올바른 순서로 저장하지 않으면 데이터베이스 오류가 발생하지 않습니다. 페이지가로드 될 때 내용이 없습니다.Mongo DB가 PHP 테이블에 데이터를 가져옵니다.

다음은 데이터베이스 테스트에서 아래에있는 것과 같은 다중 어레이가있을 것입니다. 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

정확한 데이터 형식이면 문제는 JSON 형식이 아닙니다. 콘텐츠는 임의의 문자열이 아닌 JSON 형식이어야합니다. 라는 이름의 컬렉션 내가 추가 한 두 개의 문서 'testdata로'내 쿼리가이처럼 PHP에서

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

,

$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" } } 
+0

당신은 나에게 예를 제공 할 수있는 경우 나는 나머지 부분을 스스로 연구 할만큼 괜찮은 편이어야한다. 감사합니다 라이언 – Ryan

관련 문제