Find all collections in mongodb with specific fiel

2019-01-26 16:27发布

问题:

There is more than 40 collections in database I am currently working on. One of the major key in all the collections is "account". I need to know all such collections where there is a field called "account".

Is there a query to get or a js script which prints all such collections?

In Oracle I was using :

SELECT * FROM ALL_TAB_COLUMNS WHERE COLUMN_NAME LIKE 'account'; 

Any inputs is helpful.

Thanks in advance.

回答1:

The following mongo script will print out all collection names where at least one document contains an account field.

db.getCollectionNames().forEach(function(collname) {
    var count = db[collname].find({"account": {$exists: true}}).count();
    if (count > 0) {
      print(collname);
    }
})