2016-04-30 60 views
0

我在Yii2中使用這個mongo extension如何在Yii2中編寫下面的mongo查詢查詢

我有2個系列,分別命名爲ServiceProviderParents。在ServiceProvider中有子文檔(PostCommentIDs)包含父母的ID。

另一個集合Parents包含所有父級信息。

我想加入2集合。我通過下面的mongo查詢完成了它。

但是使用上面的擴展名我該如何在Yii2中編寫這個查詢。

db.ServiceProvider.aggregate([ 
    { 
     $unwind: "$PostCommentIDs" 
    }, 
    { 
     $lookup: 
     { 
      from: "Parents", 
      localField: "PostCommentIDs", 
      foreignField: "ID", 
      as: "ParentDetails" 
     } 
    }, 
    { 
     $match: { "ParentDetails": { $ne: [] } } 
    } 
]) 

請幫忙。謝謝!

回答

0

找到了解決方案。它可以幫助某人。

$collection = Yii::$app->mongodb->getCollection('ServiceProvider'); 
$result = $collection->aggregate(
      ['$unwind' => '$PostCommentUserIDs'], 
      [ 
       '$lookup' => 
        [ 
         'from' => 'Parents', 
         'localField' => 'PostCommentUserIDs', 
         'foreignField' => 'ID', 
         'as' => 'ParentDetails' 
        ] 
      ], 
      [ 
       '$match' => [ 
        'ParentDetails' => [ '$ne' => [] ] 
       ] 
      ] 
);