From 4119189c719368a686463b16d522752aa5d63e96 Mon Sep 17 00:00:00 2001 From: Alex Holliday Date: Tue, 27 Jan 2026 03:39:55 +0000 Subject: [PATCH] format --- .../checks/MongoChecksRepistory.ts | 36 +++++++------------ 1 file changed, 12 insertions(+), 24 deletions(-) diff --git a/server/src/repositories/checks/MongoChecksRepistory.ts b/server/src/repositories/checks/MongoChecksRepistory.ts index 802f6f0d0..398fd2692 100644 --- a/server/src/repositories/checks/MongoChecksRepistory.ts +++ b/server/src/repositories/checks/MongoChecksRepistory.ts @@ -333,32 +333,20 @@ class MongoChecksRepository implements IChecksRepository { if (monitorIds.length === 0) { return {}; } - const mongoIds = monitorIds.map((id) => new mongoose.Types.ObjectId(id)); const limitPerMonitor = options?.limitPerMonitor ?? 25; - const checkGroups = await CheckModel.aggregate([ - { - $match: { - "metadata.monitorId": { $in: mongoIds }, - }, - }, - { $sort: { "metadata.monitorId": 1, createdAt: -1 } }, - { - $group: { - _id: "$metadata.monitorId", - latestChecks: { - $topN: { - n: limitPerMonitor, - sortBy: { createdAt: -1 }, - output: "$$ROOT", - }, - }, - }, - }, - ]); - return checkGroups.reduce((acc, group) => { - const monitorId = group._id.toString(); - acc[monitorId] = (group.latestChecks ?? []).map((doc: CheckDocument) => this.toEntity(doc)); + const results = await Promise.all( + monitorIds.map(async (monitorId) => { + const docs = await CheckModel.find({ "metadata.monitorId": new mongoose.Types.ObjectId(monitorId) }) + .sort({ createdAt: -1 }) + .limit(limitPerMonitor) + .lean(); + return { monitorId, docs }; + }) + ); + + return results.reduce((acc, { monitorId, docs }) => { + acc[monitorId] = docs.map((doc) => this.toEntity(doc as CheckDocument)); return acc; }, {}); };