首页 > 解决方案 > 如何从所有集合中删除一个字段?

问题描述

你可以从 mongodb 的所有集合中删除一个字段吗?我解释一下,假设我有 3 个数据库,分别称为 db1、db2 和 db3。以及其中包含字段和数据的随机文档。是否有任何命令可以从所有数据库中删除某些字段,或者您可以从所有文档中删除一个字段?

标签: mongodb

解决方案


假设您想field1从所有文档中删除您必须遍历db1db2以及它们各自的集合,然后用于$unset删除该字段

var dbList = ["db1", "db2"]
var mongo = new Mongo()
dbList.forEach(function(dbName){
    var db = mongo.getDB(dbName)
    print("Removing from db: "+dbName)
    db.getCollectionNames().forEach(function(collName){
        print("\tRemoving from collection: "+collName)
        db.getCollection(collName).updateMany({}, {$unset:{"field1":""}})
    })  

})

推荐阅读