From 27427aba6d4d1227aa7d1897fdf7aec4d5cc6c11 Mon Sep 17 00:00:00 2001 From: Sainan Date: Sun, 16 Mar 2025 14:28:46 +0100 Subject: [PATCH] chore: add indexes for various models These are looked up by the owner account id and/or assumed to exist only once per account. No index was added for "Ships" as that does not match these critera. --- src/models/inboxModel.ts | 2 ++ src/models/inventoryModels/inventoryModel.ts | 2 ++ src/models/inventoryModels/loadoutModel.ts | 2 ++ src/models/personalRoomsModel.ts | 2 ++ src/models/statsModel.ts | 2 ++ 5 files changed, 10 insertions(+) diff --git a/src/models/inboxModel.ts b/src/models/inboxModel.ts index c451d18a..c7c5e563 100644 --- a/src/models/inboxModel.ts +++ b/src/models/inboxModel.ts @@ -138,4 +138,6 @@ messageSchema.set("toJSON", { } }); +messageSchema.index({ ownerId: 1 }); + export const Inbox = model("Inbox", messageSchema, "inbox"); diff --git a/src/models/inventoryModels/inventoryModel.ts b/src/models/inventoryModels/inventoryModel.ts index 86b9c2c8..d7588a48 100644 --- a/src/models/inventoryModels/inventoryModel.ts +++ b/src/models/inventoryModels/inventoryModel.ts @@ -1443,6 +1443,8 @@ inventorySchema.set("toJSON", { } }); +inventorySchema.index({ accountOwnerId: 1 }, { unique: true }); + // type overwrites for subdocuments/subdocument arrays export type InventoryDocumentProps = { FlavourItems: Types.DocumentArray; diff --git a/src/models/inventoryModels/loadoutModel.ts b/src/models/inventoryModels/loadoutModel.ts index e43d33d1..dfa90bef 100644 --- a/src/models/inventoryModels/loadoutModel.ts +++ b/src/models/inventoryModels/loadoutModel.ts @@ -78,6 +78,8 @@ loadoutSchema.set("toJSON", { } }); +loadoutSchema.index({ loadoutOwnerId: 1 }, { unique: true }); + //create database typefor ILoadoutConfig type loadoutDocumentProps = { NORMAL: Types.DocumentArray; diff --git a/src/models/personalRoomsModel.ts b/src/models/personalRoomsModel.ts index e54d1b1c..5addf282 100644 --- a/src/models/personalRoomsModel.ts +++ b/src/models/personalRoomsModel.ts @@ -152,6 +152,8 @@ export const personalRoomsSchema = new Schema({ TailorShop: { type: tailorShopSchema, default: tailorShopDefault } }); +personalRoomsSchema.index({ personalRoomsOwnerId: 1 }, { unique: true }); + export const PersonalRooms = model( "PersonalRooms", personalRoomsSchema diff --git a/src/models/statsModel.ts b/src/models/statsModel.ts index c4ec87c3..93cf9c1f 100644 --- a/src/models/statsModel.ts +++ b/src/models/statsModel.ts @@ -103,6 +103,8 @@ statsSchema.set("toJSON", { } }); +statsSchema.index({ accountOwnerId: 1 }, { unique: true }); + export const Stats = model("Stats", statsSchema); // eslint-disable-next-line @typescript-eslint/ban-types