MongoDB:跨多个集合执行相同的操作

时间:2015-11-26 05:39:23

标签: mongodb

我使用split collection philosophy拍摄了一个大集合,分成了很多集合。假设我想从所有集合中删除一个字段。通常我会使用pymongo API并执行以下操作:

for collections in connection.collection_names():
     connection[collection].update({},{"$unset":{"myfield":1}},multi=True)

有没有办法在mongo shell中执行此操作?

希望有类似的东西:

use mydatabase
mydatabase.*.update({},{$unset:{"myfield":1}},{multi:true})

或类似

db.getCollectionNames().forEach(func(obj)){db.obj.update()

但我无法弄清楚如何遍历shell /

中的集合名称

1 个答案:

答案 0 :(得分:1)

您可以使用以下代码段来执行此操作:

db.getCollectionNames().forEach(function(collection){
    db[collection].update({},{$unset:{"myfield":1}},{multi:true});
});

希望这会有所帮助:)