2013-08-11 5 views
0

저장된 문서의 하위 문서에서 하나의 값을 가져 오려고합니다. 샘플 문서는 다음과 같습니다 나는 값 "doc2"를 얻으려고 :mongodb php 배열 값을 얻으십시오

{ 
"_id" : ObjectId("52060cae8b080ed4170063d3"), 
"form_id" : "5204c6dca0875b6a1545f436", 
"update" : false, 
"values" : [{ 
    "5204c71a8b080e6c190000bb" : "doc2" 
}, { 
    "5204c7638b080e6c19006b06" : "that one too" 
}, { 
    "form_id" : "5204c6dca0875b6a1545f436" 
}, { 
    "btn_submit" : "Save" 
}] 
} 

지금까지 내 코드는 다음과 같습니다 :

try { 
    $connection = new Mongo(); 
    $database = $connection->selectDB('forms'); 
    $collection = $database->selectCollection('instance'); 
} catch(MongoConnectionException $e) { 
die("Failed to connect to database ".$e->getMessage()); 
} 
$value = $collection->findOne(array('_id' =>new MongoId($instid)),array('values.'.$fid)); 

은 $ instid가 전달 및 form_id입니다 문서에서. 그리고 $ FID는 전달과 문서

의 값 배열의 핵심이며, 나는이 받고 있어요된다

{ ["_id"]=> object(MongoId)#15 (1) 
{ ["$id"]=> "52060cae8b080ed4170063d3" } 
["values"]=> 
{ [0]=> { ["5204c71a8b080e6c190000bb"]=> "doc2" } 
[1]=> array(0) { } 
[2]=> array(0) { } 
[3]=> array(0) { } 
} } 

감사합니다 사전에 어떤 도움을.

답변

0

당신은 다차원 배열의 형태로 데이터를 받고, 그래서 이것은

Array ([5204c71a8b080e6c190000bb] => doc2) 

를 반환합니다 당신은

print_r($value['values']['0']); 

를 사용해야합니다 그리고 당신은 단지 doc2을 에코하려면 다음의 foreach 문을 사용할 수 있습니다

foreach($value['values']['0'] as $x) 
{ 
    echo $x; 

} 
관련 문제