2015-12-15 153 views
0

我使用與的MongoDB數據庫爾康框架,這個項目是一個寧靜的項目,我需要從每個控制器JSON輸出,我在MongoDB中的數據庫的集合,當我讀它並轉換成JSON,我得到的結果如下圖所示:轉換蒙戈DB結果JSON

{ 
    "_meta": { 
     "status": "SUCCESS", 
     "count": 1 
    }, 
    "records": { 
     "_id": { 
      "$id": "5659c36e9dd39ed34024f9a1" 
     }, 
     "name": "main", 
     "cities": [ 
      { 
       "_id": { 
        "$id": "5659c36e9dd39ed34024f9a2" 
       }, 
       "name": "child1" 
      }, 
      { 
       "_id": { 
        "$id": "5659c36e9dd39ed34024f9bd" 
       }, 
       "name": "child2" 
      }, 
      { 
       "_id": { 
        "$id": "5659c36e9dd39ed34024f9be" 
       }, 
       "name": "child2" 
      } 
     ] 
    } 
} 

正如你可以看到,我們有一個字段"$id"的名字,我覺得這是不好的,因爲我是在移動應用中使用這樣的結果,它會區分當我要分析此jsonPOJO課給我一個問題。
我知道爲什麼我們在輸出中有「$ id」,但我不知道如何替換它,我不想使用str_replaceforeach語法,我相信phalconmongodb模型在Phalcon中,應該有一個解決方案。 解決方案是什麼?

回答

1

迭代遞歸檢查對象和取消財產

+0

非常感謝你,怎麼樣 ? –

+0

我想這樣的事情: –

1

我想類似的東西: 如果我們假設您從數據庫獲取的對象是$結果:

// Object from db 
$result; 

// Get only records 
$records = $result->records; 

// Unset undesired properties recursively 
$this->iterateRecursively($records); 

public function iterateRecursively($object, $properties = ['_id']) 
{ 
    foreach ($object as $key => $value){ 

     // Unset undesired properties 
     foreach ($properties as $property){ 
       if ($key === $property){ 
       unset($object->{$property}); 
      } 
     } 

     // Dig deeper into object 
     if (is_object($value)){ 
      $this->iterateRecursively($value); 
     } 
    } 
}