2

私のデータセットはDBで完成しています。ただし、データベース内の各ドキュメントに新しいフィールドを作成したいと思います。この新しいフィールドは、現在データベースにある他のフィールドと一緒に入力の一部から派生させたいものです。

IE:

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

次に、すべてのエントリを繰り返し処理して、次のようなものを追加します。

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

これを行う簡単な方法はありますか?データセット全体の再挿入を回避しようとしています。

よろしくお願いします

(Mongoは素晴らしいです)

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 に答える