2017-06-06 26 views
2

ここに埋め込まれたドキュメントには当てはまらないコードがあります。Mongodbは埋め込まれたドキュメントをPHPで取り込みません

<?php 
    include 'vendor/dbcon.php'; 
     $documentlist = $state -> find(['s_name' => 'West Bengal'], 
      ['projection' => ['_id' => 0, 'places._id' => 1]]); 

    foreach ($documentlist as $doc) { 
    echo $doc["places._id"] . "\n"; 
    } 
?> 

ERROR shows: Notice: Undefined index: places._id in C:\xampp\htdocs\Education\Home.php on line 130

コードは次のようである場合:

foreach ($documentlist as $doc) { 
     echo $doc["_id"] . "\n"; 
     } 

then ERROR:: Notice: Undefined index: _id in C:\xampp\htdocs\Education\Home.php on line 130

データベース構造:MongoDBの

db.state.find().pretty() 

{ 
     "_id" : "state1", 
     "s_name" : "West Bengal", 
     "places" : [ 
       { 
         "_id" : "Bardhaman", 
         "pin" : "754216" 
       }, 
       { 
         "_id" : "Jalpaiguri", 
         "pin" : "754217" 
       } 
     ] 
} 

は、どのように私は(すべてplaces._idリストを印刷することができ、私を助けてください例:Bardhaman、Jalpaiguri)

+0

あなたは '_id'が含まれていませんでした。見る? '' _id '=> 0' –

+0

私の悪いです。 「場所」はもちろん配列です。ドキュメント内から繰り返し処理する必要があります。 –

答えて

0

プロジェクションには何も問題はありません.PPOの場合は、PHP表記であり、ドット表記ではありません。そしてもちろん、「場所」の配列であるので、あなたは反復する必要があります。

$documentlist = $state->find([],[ '_id' => 0, 'places._id' => 1 ]); 

    foreach ($documentlist as $doc) { 
    foreach($doc['places'] as $place) { 
     echo $place['_id'] . "\n"; 
    } 
    } 

が生成されます

Bardhaman 
Jalpaiguri 
+0

ありがとうございます – Nakul23

関連する問題