在 MongoDB 中,如何打印所有集合计数和索引?

Zen*_*tum 6 mongodb

我需要在迁移到另一台服务器之前验证数据,我想确保所有文档和索引都正确传输。有没有命令,我跑来做这件事?

Dav*_*ett 6

此脚本将输出您想要的内容:

db = db.getSiblingDB('admin');

var dbs = db.adminCommand('listDatabases');

dbs.databases.forEach(function(database){
  print("Database: " + database.name);
  print("-----");

  db = db.getSiblingDB(database.name);

  db.getCollectionNames().forEach(function(collection) {
    indexes = db[collection].getIndexes();
    print("Collection '" + collection + "' documents: " + db[collection].count());
    print("Indexes for " + collection + ":");
    printjson(indexes);
  });

  print("");

});
Run Code Online (Sandbox Code Playgroud)


cta*_*ppy 6

localhost:PRIMARY> db.getCollectionNames().forEach(k => print(db[k].count(), JSON.stringify(db[k].getIndexKeys()), db[k].getName()))
Run Code Online (Sandbox Code Playgroud)

将通过 mongo cli 执行此操作