保存されたドキュメントのサブドキュメントから 1 つの値を取得しようとしています。サンプルドキュメントは次のようになり、値「doc2」を取得しようとしています:
{
"_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) { }
} }
ご協力いただきありがとうございます。