2017-07-04 10 views
1

PHPでMongoDB foreachクエリをコーディングするには?MongoDB foreachをPHPでコーディングする方法

は今、私はPHPで実行するには、このクエリを取得する方法がわからない、iterator_to_arrayとPHPで同じMongoDBのQUERYをコーディングする必要があります。

今私はこれにこだわった。 私はいくつかの例で私のデータを与えました。

USED MONGO QUERY:

db.getCollection('DRUM').find({'CODE': 'XXYYZZYY'}).forEach(
function(doc) 
{ 
    print(doc.COLLECTION.DAY); 
}); 

実際のDB RECORD:

{ 
    "CODE" : "XXYYZZYY", 
    "COLLECTION" : { 
     "DAY" : { 
     "2017-06-05" : { 
      "id" : 565455 
     }, 
     "2017-06-15" : { 
      "id" : 565445 
     } 
     }, 
     "MONTHLY" : { 
     "2017-06-01" : { 
      "id" : 564444 
     }, 
     "2017-05-01" : { 
      "id" : 565455 
     } 
     } 
    }, 
    "success" : true 
} 

予想される出力:

{ 
    "CODE" : "XXYYZZYY", 
    "COLLECTION" : { 
     "DAY" : { 
     "2017-06-05" : { 
      "id" : 565455 
     }, 
     "2017-06-15" : { 
      "id" : 565445 
     } 
     } 
    }, 
    "success" : true 
} 

答えて

0

あなたはDIRECすることはできませんPHPから同じクエリを実行します。最初にmongoからレコードを取り出し、その結果を反復処理する必要があります。

ここで私のコードはPHP7のmongodbドライバと同じです。

//connection object 
$connection = new \MongoDB\Driver\Manager("mongodb://127.0.0.1:27017"); 

$filter = ['CODE' => 'XXYYZZYY']; 
$projection['projection'] = ["COLLECTION.DAY" => 1,"CODE" => 1]; 

$query = new \MongoDB\Driver\Query($filter,$projection); 
$cursor = $connection->executeQuery('DB_NAME.DRUM', $query); 
foreach($cursor as $key => $row) { 
    print_r($row); //your expected output 
} 
関連する問題