-- DBMS: bigquery
CREATE TABLE `bigquery-public-data.stackoverflow.post_history`
(
  id INT64,
  creation_date TIMESTAMP,
  post_id INT64,
  post_history_type_id INT64,
  revision_guid STRING,
  user_id INT64,
  text STRING,
  comment STRING
);

INSERT INTO `bigquery-public-data.stackoverflow.post_history` (id, creation_date, post_id, post_history_type_id, revision_guid, user_id, text, comment) VALUES (79288580, '2014-12-08 05:45:42.583000+00:00', 27352112, 2, '405ebdc0-31a8-430d-a457-7321d8992fb9', NULL, 'i am newbie in angularjs, i am trying to develop a simple ng-grid in which the data which is coming need to be filter before displaying, so what i am trying i am trying to filter but its not giving me exact filter if filter value is ''/xyz/'' then it is giving me ''/xyz/asd'' also but i need only ''/xyz/'' value. 
''/xyz/'' is folderpath
where i am doing wrong can anyone help me please.

    app.controller(''DeatilCtrl'', function($scope, $http) {
   $scope.totalServerItems = 0;
      $scope.pagingOptions = {
          pageSizes: [15, 20, 30],
          pageSize: 15,
          currentPage: 1
      }; 
  
      $scope.filterByPath ={
        filterText : ''/xyz/'' 
      };
      $scope.setPagingData = function(data, page, pageSize){ 
          var pagedData = data.slice((page - 1) * pageSize, page * pageSize);
          $scope.myData = pagedData;
          $scope.totalServerItems = data.length;
          if (!$scope.$$phase) {
              $scope.$apply();
          }
      };         
      $scope.getPagedDataAsync = function (pageSize, page, searchText,folderPath) {
     
          setTimeout(function () {
              var data;
              var fPath = folderPath;
              if(fPath == null){
               fPath =''/'';
              }
              if (searchText) {
                  var ft = searchText.toLowerCase();
                  $http.get(''rest/files'').success(function (largeLoad) {  
                      data = largeLoad.filter(function(item) {
                          return JSON.stringify(item).toLowerCase().indexOf(ft) != -1;
                      });
                      $scope.setPagingData(data,page,pageSize);
                  });            
              } else {
                  $http.get(''rest/files'').success(function (largeLoad) {
                      $scope.setPagingData(largeLoad,page,pageSize);
                  });
              }
          }, 100);
      };
   
      $scope.getPagedDataAsync($scope.pagingOptions.pageSize, $scope.pagingOptions.currentPage);
   
      $scope.$watch(''pagingOptions'', function (newVal, oldVal) {
          if (newVal !== oldVal && newVal.currentPage !== oldVal.currentPage) {
            $scope.getPagedDataAsync($scope.pagingOptions.pageSize, $scope.pagingOptions.currentPage, $scope.filterOptions.filterText);
          }
      }, true);
      $scope.$watch(''filterOptions'', function (newVal, oldVal) {
          if (newVal !== oldVal) {
            $scope.getPagedDataAsync($scope.pagingOptions.pageSize, $scope.pagingOptions.currentPage, $scope.filterOptions.filterText);
          }
      }, true);
      
      var rowTempl = ''<div ng-dblClick="onDblClickRow(row)" ng-style="{ \''cursor\'': row.cursor   }" ng-repeat="col in renderedColumns" ''+''ng-class="col.colIndex()" class="ngCell{{col.cellClass}}"><div ng-cell></div></div>'';

      $scope.onDblClickRow = function(row){
       var rowData =  $scope.myData[row.rowIndex];
          var folderpath= rowData.folderPath+rowData.fileName+"/";
          
         $scope.getPagedDataAsync(folderpath);
         
      };
      $scope.gridOptions = {
          data: ''myData'',
          
          columnDefs: [
                       { field: "fileName", displayName: "File Name"},
                       { field: "folderPath", displayName: "Full Path"}
                   ],
          enablePaging: true,
     showFooter: true,
          totalServerItems: ''totalServerItems'',
          pagingOptions: $scope.pagingOptions,
          filterOptions: $scope.filterByPath,
          rowTemplate: rowTempl,
          
      };
    });', NULL), (79288581, '2014-12-08 05:45:42.583000+00:00', 27352112, 1, '405ebdc0-31a8-430d-a457-7321d8992fb9', NULL, 'how to filter according to exact filter value in ng-grid?', NULL), (79288582, '2014-12-08 05:45:42.583000+00:00', 27352112, 3, '405ebdc0-31a8-430d-a457-7321d8992fb9', NULL, '<angularjs><ng-grid>', NULL), (79289234, '2014-12-08 06:04:36.827000+00:00', 27352281, 2, '215cb4e2-e50c-4c50-94dc-89d43cc87eae', NULL, 'AngularJs Source code deep dive - What does `invokeQueue` and `configBlocks` do during angularjs bootstrapping? I see they are passed to arguments for `runInvokeQueue` function inside `loadModules`.', NULL), (79289235, '2014-12-08 06:04:36.827000+00:00', 27352281, 1, '215cb4e2-e50c-4c50-94dc-89d43cc87eae', NULL, 'AngularJS invokeQueue and configBlocks', NULL);