From 2f5c3c913c215122f523d0ee96d5216bfd6835ef Mon Sep 17 00:00:00 2001 From: Olzhas Askar Date: Fri, 12 Sep 2025 20:10:50 +0200 Subject: [PATCH] Merge pull request #28481 from overleaf/oa-access-secondary-mongo [web] Prefer secondary Mongo for get emails script GitOrigin-RevId: 84cf1d23b056a4d4a738f1783059d2309997d912 --- services/web/scripts/get_emails_by_ids.mjs | 24 ++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/services/web/scripts/get_emails_by_ids.mjs b/services/web/scripts/get_emails_by_ids.mjs index 4a41486244..151be8be9a 100644 --- a/services/web/scripts/get_emails_by_ids.mjs +++ b/services/web/scripts/get_emails_by_ids.mjs @@ -2,7 +2,11 @@ import { scriptRunner } from './lib/ScriptRunner.mjs' import fs from 'node:fs' import readline from 'node:readline' import minimist from 'minimist' -import { db, ObjectId } from '../app/src/infrastructure/mongodb.js' +import { + db, + ObjectId, + READ_PREFERENCE_SECONDARY, +} from '../app/src/infrastructure/mongodb.js' /** * This script extracts user emails given a list of newline separated IDs @@ -64,14 +68,18 @@ function parseArgs() { async function processBatch(idBatch, writeStream) { try { - const cursor = db.users - .find({ + const cursor = db.users.find( + { _id: { $in: idBatch }, - }) - .project({ - _id: 0, - email: 1, - }) + }, + { + projection: { + _id: 0, + email: 1, + }, + readPreference: READ_PREFERENCE_SECONDARY, + } + ) for await (const doc of cursor) { if (doc.email) {