ensure that leaderboard-accountId pair is unique
Some checks failed
Build / build (18) (push) Failing after 1m16s
Build / build (18) (pull_request) Failing after 46s
Build / build (20) (pull_request) Failing after 1m12s
Build / build (20) (push) Failing after 44s
Build / build (22) (push) Failing after 1m12s
Build / build (22) (pull_request) Failing after 1m18s
Some checks failed
Build / build (18) (push) Failing after 1m16s
Build / build (18) (pull_request) Failing after 46s
Build / build (20) (pull_request) Failing after 1m12s
Build / build (20) (push) Failing after 44s
Build / build (22) (push) Failing after 1m12s
Build / build (22) (pull_request) Failing after 1m18s
This commit is contained in:
parent
ecb0fd91e5
commit
f74a673b27
@ -13,6 +13,7 @@ const leaderboardEntrySchema = new Schema<ILeaderboardEntryDatabase>(
|
|||||||
);
|
);
|
||||||
|
|
||||||
leaderboardEntrySchema.index({ leaderboard: 1 });
|
leaderboardEntrySchema.index({ leaderboard: 1 });
|
||||||
|
leaderboardEntrySchema.index({ leaderboard: 1, accountId: 1 }, { unique: true });
|
||||||
leaderboardEntrySchema.index({ expiry: 1 }, { expireAfterSeconds: 0 }); // With this, MongoDB will automatically delete expired entries.
|
leaderboardEntrySchema.index({ expiry: 1 }, { expireAfterSeconds: 0 }); // With this, MongoDB will automatically delete expired entries.
|
||||||
|
|
||||||
export const Leaderboard = model<ILeaderboardEntryDatabase>("Leaderboard", leaderboardEntrySchema);
|
export const Leaderboard = model<ILeaderboardEntryDatabase>("Leaderboard", leaderboardEntrySchema);
|
||||||
|
@ -20,8 +20,8 @@ export const submitLeaderboardScore = async (
|
|||||||
expiry = new Date(weekEnd);
|
expiry = new Date(weekEnd);
|
||||||
}
|
}
|
||||||
await Leaderboard.findOneAndUpdate(
|
await Leaderboard.findOneAndUpdate(
|
||||||
{ leaderboard, displayName },
|
{ leaderboard, accountId },
|
||||||
{ $max: { score }, $set: { accountId, expiry } },
|
{ $max: { score }, $set: { displayName, expiry } },
|
||||||
{ upsert: true }
|
{ upsert: true }
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user