2

我的数据集在数据库中是完整的;但是我想在数据库中的每个文档上创建一个新字段。我想通过我的一些输入以及当前在数据库中的其他字段来派生这个新字段:

IE:

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

然后我想遍历每个条目并添加如下内容:

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

是否有捷径可寻?尽量避免重新插入整个数据集。

预先感谢您的帮助

(蒙哥厉害)

4

1 回答 1

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']))));

}

我还没有测试过......但它应该工作......

于 2011-11-23T15:17:42.223 回答