您如何处理Mongo数据库中的模式更改,例如,在重构之后,您更改了对象模式设计,这会影响文档模式。有没有一种方法可以更新文档架构?
发布于 2012-04-30 10:01:50
您可以在整个模式上运行更新,删除字段,或者添加字段并将其设置为计算值(如果这是您想要的结果)。
假设你有一个x字段,你想添加一个应该设置为x/2的y字段,你可以这样做:
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 }https://stackoverflow.com/questions/10377556
复制相似问题