我有两个集合customSchemas和customdata。除了默认_id指数,我已经添加了以下索引MultiTenant的MongoDb索引
db.customData.createIndex({ "orgId": 1, "contentType": 1 });
db.customSchemas.createIndex({ "orgId": 1, "contentType": 1 }, { unique: true });
我已经决定执行ORGID上的所有通话,所以在我服务层,每个查询中有一个ORGID,即使IDS的那些,例如
db.customData.find({"_id" : ObjectId("557f30402598f1243c14403c"), orgId: 1});
我应该添加一个同时具有_id和orgId的索引吗?当我使用_id和orgId进行搜索时,我现在所用的索引是否有帮助?
_id shoud在MongoDB中是唯一的。没有理由在该查询中添加orgId:1 – anhlc
原因是在多租户中强制执行完整性。您绝不希望通过orgId 1进行身份验证的用户能够为orgId 2请求数据。唯一确定的方法是对每个通过身份验证机制硬连接的查询强制执行orgId。保持您的业务是一个非常好的理由。 –
这很有道理 – anhlc