У меня есть две коллекции, customSchemas и customdata. Кроме того, индекс по _ID умолчанию, я добавил следующие индексыMongoDb Индексирование для MultiTenant
db.customData.createIndex({ "orgId": 1, "contentType": 1 });
db.customSchemas.createIndex({ "orgId": 1, "contentType": 1 }, { unique: true });
Я решил применять orgId на все звонки, так что в моем уровне услуг, каждый запрос имеет orgId в нем, даже те, с идентификаторами , например
db.customData.find({"_id" : ObjectId("557f30402598f1243c14403c"), orgId: 1});
Следует ли добавить индекс, в котором есть как _id, так и orgId? Имеются ли в настоящее время индексы, которые у меня есть, когда я просматриваю как _id, так и orgId?
_id shoud быть уникальным в MongoDB. Нет причин добавлять orgId: 1 в этот запрос – anhlc
Причина заключается в обеспечении целостности при многократном удержании. Вы никогда не хотите, чтобы пользователь аутентифицировался с помощью orgId 1, чтобы иметь возможность запрашивать данные для orgId 2. Единственный способ убедиться в том, что принудительное использование orgId выполняется для каждого запроса, который жестко связан с вашим механизмом аутентификации. Сохранение вашего бизнеса - действительно хорошая причина. –
Это имеет смысл – anhlc