Fix indexes for users

This commit is contained in:
John Lyon-Smith
2018-04-24 09:54:43 -07:00
parent 680f7befaa
commit 0184481a7f

View File

@@ -4,12 +4,7 @@ import { regExpPattern } from "regexp-pattern"
export let userSchema = new Schema(
{
_id: { type: Schema.Types.ObjectId, required: true, auto: true },
loginToken: {
type: String,
index: true,
unique: true,
partialFilterExpression: { loginToken: { $type: "string" } },
},
loginToken: String,
passwordHash: {
type: {
hash: String,
@@ -30,23 +25,13 @@ export let userSchema = new Schema(
thumbnailImageId: { type: Schema.Types.ObjectId },
emailToken: {
type: {
value: {
type: String,
index: true,
unique: true,
partialFilterExpression: { emailToken: { $type: "string" } },
},
value: String,
created: Date,
},
},
passwordToken: {
type: {
value: {
type: String,
index: true,
unique: true,
partialFilterExpression: { passwordToken: { $type: "string" } },
},
value: String,
created: Date,
},
},
@@ -58,6 +43,25 @@ export let userSchema = new Schema(
{ timestamps: true, id: false }
)
userSchema.index(
{ "emailToken.value": 1 },
{
unique: true,
partialFilterExpression: { "emailToken.value": { $type: "string" } },
}
)
userSchema.index(
{ "passwordToken.value": 1 },
{
unique: true,
partialFilterExpression: { "passwordToken.value": { $type: "string" } },
}
)
userSchema.index(
{ loginToken: 1 },
{ unique: true, partialFilterExpression: { loginToken: { $type: "string" } } }
)
userSchema.methods.toClient = function(authUser) {
if (!authUser) {
authUser = this