2011-11-23 63 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