code: public function findTreeNode($siteId, $language, $parentId)
      {
          $qa = $this->createAggregationQueryBuilderWithSiteIdAndLanguage($siteId, $language);
          if (NodeInterface::ROOT_PARENT_ID !== $parentId ) {
              $qa->match(array('path' => new MongoRegex('/'.$parentId.'(\/.*)?$/')));
          }
          $qa->match(array('deleted' => false));
  
          $qa->sort(array('createdAt' => 1));
          $elementName = 'node';
          $qa->group(array(
              '_id' => array('nodesId' => '$nodeId'),
              'version' => array('$last' => '$version'),
              'order' => array('$last' => '$order'),
              'nodeId' => array('$last' => '$nodeId'),
              $elementName => array('$last' => '$$ROOT')
          ));
          $qa->sort(array('order' => 1));
          $nodes = $qa->getQuery()->aggregate()->toArray();
  
          return $this->generateTree($nodes, $parentId);
      }
docs: @param string $siteId
  @param string $language
  @param string $parentId
  
  @return array