2011-11-23 31 views
2

我的數據集在數據庫中完成;但是我想在db中的每個文檔上創建一個新字段。Mongo更新當前數據,重新使用數據集中的字段

IE:

Document: 
{ 
    "_id":myId, 
    "city":"fooville", 
    "state":"bar" 
} 

然後我想採取通過每個條目進行迭代,並添加一些這個新的領域我想通過我的一些輸入與當前數據庫中的其他字段一起導出像這樣:

Document: 
{ 
    "_id":myId, 
    "city":"fooville", 
    "state":"bar", 
    "cityState":"fooville, bar" 
} 

有沒有簡單的方法來做到這一點?試圖避免重新插入整個數據集。

預先感謝您的幫助

(蒙戈是真棒)

回答

2

事情是這樣的:

$results = $collection->find(); 

// iterate through the results 
foreach ($results as $results) 
{ 

    $collection->update(array("_id" => new MongoId($result['_id'])), 
         array('$set' => array("cityState" => sprintf("%s, %s", $result['city'], $result['state'])))); 

} 

我沒有測試它....但它應該工作。 ..

+0

優秀; sprintf想法;忘了PHP的這個操作。非常感謝你! – Petrogad

+0

不客氣。很高興有幫助。 – Flukey