Mongo dbでスキーマの変更をどのように処理しますか。たとえば、リファクタリング後にオブジェクトスキーマの設計を変更すると、ドキュメントスキーマに影響します。ドキュメントスキーマを更新する方法はありますか?
質問する
1358 次
1 に答える
3
スキーマ全体に対して更新を実行したり、フィールドを削除したり、フィールドを追加して計算値に設定したりすることができます。
xフィールドがあり、x / 2に設定する必要があるayフィールドを追加したい場合は、次のようにすることができます。
PRIMARY> db.test.insert({x:15});
PRIMARY> db.test.insert({x:30});
PRIMARY> db.test.insert({x:50});
PRIMARY> db.test.find();
{ "_id" : ObjectId("4f9df1ebed2b924eedb8cad9"), "x" : 15 }
{ "_id" : ObjectId("4f9df1eeed2b924eedb8cada"), "x" : 30 }
{ "_id" : ObjectId("4f9df1f1ed2b924eedb8cadb"), "x" : 50 }
PRIMARY> db.test.find().forEach(function(doc) {
doc.y = doc.x/2;
db.test.save(doc);
});
PRIMARY> db.test.find();
{ "_id" : ObjectId("4f9df1ebed2b924eedb8cad9"), "x" : 15, "y" : 7.5 }
{ "_id" : ObjectId("4f9df1eeed2b924eedb8cada"), "x" : 30, "y" : 15 }
{ "_id" : ObjectId("4f9df1f1ed2b924eedb8cadb"), "x" : 50, "y" : 25 }
于 2012-04-30T02:01:50.463 に答える