更新: 値を変更せずにドキュメントの構造を変更するだけの場合は、gipsetの回答を参照してください。
[ドキュメントの更新]ページの(現在は利用できない)コメントによると、update()
内から現在のドキュメントのプロパティを参照することはできません。 。
すべてのドキュメントを繰り返し処理し、次のように更新する必要があります:
db.events.find().snapshot().forEach(
function (e) {
// update document, using its own properties
e.coords = { lat: e.lat, lon: e.lon };
// remove old properties
delete e.lat;
delete e.lon;
// save the updated document
db.events.save(e);
}
)
このような関数は、map-reduceジョブまたはサーバー側のdb.eval()
でも使用できます。 仕事、あなたのニーズに応じて。