Compare commits
2 Commits
f74a673b27
...
537999e462
Author | SHA1 | Date | |
---|---|---|---|
537999e462 | |||
901f8e377b |
@ -4,8 +4,8 @@ import { ILeaderboardEntryDatabase } from "../types/leaderboardTypes";
|
|||||||
const leaderboardEntrySchema = new Schema<ILeaderboardEntryDatabase>(
|
const leaderboardEntrySchema = new Schema<ILeaderboardEntryDatabase>(
|
||||||
{
|
{
|
||||||
leaderboard: { type: String, required: true },
|
leaderboard: { type: String, required: true },
|
||||||
accountId: { type: Schema.Types.ObjectId, required: true },
|
|
||||||
displayName: { type: String, required: true },
|
displayName: { type: String, required: true },
|
||||||
|
accountId: { type: Schema.Types.ObjectId, required: true },
|
||||||
score: { type: Number, required: true },
|
score: { type: Number, required: true },
|
||||||
expiry: { type: Date, required: true }
|
expiry: { type: Date, required: true }
|
||||||
},
|
},
|
||||||
@ -13,7 +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({ leaderboard: 1, displayName: 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, accountId },
|
{ leaderboard, displayName },
|
||||||
{ $max: { score }, $set: { displayName, expiry } },
|
{ $max: { score }, $set: { accountId, expiry } },
|
||||||
{ upsert: true }
|
{ upsert: true }
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user