// ======= CONFIG: list your base collections here =======
const targetCollections = [
];
// ======= UTILITIES =======
function collExists(name) {
return db.getCollectionInfos({ name }).length > 0;
}
function countOrZero(name) {
if (!collExists(name)) return 0;
// Accurate count; if you prefer faster (approx) use estimatedDocumentCount()
return db.getCollection(name).countDocuments({});
}
function pad(str, len) {
const s = String(str);
return s + " ".repeat(Math.max(0, len - s.length));
}
// ======= RUN =======
const header =
"Collection".padEnd(28) +
"original".padEnd(12) +
"duplicated_".padEnd(14) +
"backup_".padEnd(12) +
"backup_new_apps_".padEnd(18);
print(header);
print("-".repeat(header.length));
let totalOriginal = 0;
let totalDuplicated = 0;
let totalBackup = 0;
let totalBackupNewApps = 0;
for (const base of targetCollections) {
const originalName = base;
const duplicatedName = `duplicated_${base}`;
const backupName = `backup_${base}`;
const backupNewAppsName = `backup_new_apps_${base}`;
const cOriginal = countOrZero(originalName);
const cDup = countOrZero(duplicatedName);
const cBackup = countOrZero(backupName);
const cBackupNew = countOrZero(backupNewAppsName);
totalOriginal += cOriginal;
totalDuplicated += cDup;
totalBackup += cBackup;
totalBackupNewApps += cBackupNew;
print(
pad(base, 28) +
pad(cOriginal, 12) +
pad(cDup, 14) +
pad(cBackup, 12) +
pad(cBackupNew, 18)
);
}
print("-".repeat(header.length));
print(
pad("TOTAL", 28) +
pad(totalOriginal, 12) +
pad(totalDuplicated, 14) +
pad(totalBackup, 12) +
pad(totalBackupNewApps, 18)
);
db.application.countDocuments({
$or: [
{ "applicants.0.firstName": { $exists: false } },
{ "applicants.0.firstName": null },
{ "applicants.0.firstName": "" },
{ "applicants.0.lastName": { $exists: false } },
{ "applicants.0.lastName": null },
{ "applicants.0.lastName": "" }
]
});
Top comments (0)