Главный вопрос: Как я могу удалить вложенные документы по истечении срока действия документа? (с помощью метода mon goose index ())
Подробности:
Когда пользователь зарегистрирован, серверная часть создает для него рабочие области и проекты.
{
*user fields*
"workspaces": [
{
"owner": "5f0dc0a6fefaaf1040796f21",
"projects": [
{
"owner": "5f0dc0a6fefaaf1040796f21",
"workspace": "5f0dc0a6fefaaf1040796f22",
"title": "EXAMPLE PROJECT",
"id": "5f0dc0a6fefaaf1040796f24"
}
],
"title": "Personal",
"id": "5f0dc0a6fefaaf1040796f22"
},
{
"owner": "5f0dc0a6fefaaf1040796f21",
"projects": [],
"title": "Shared with me",
"id": "5f0dc0a6fefaaf1040796f23"
}
],
"id": "5f0dc0a6fefaaf1040796f21"
}
Вот одна часть пользовательской схемы:
const UserSchema = new Schema({
workspaces : [{ type: Schema.Types.ObjectId, ref: 'Workspace' }],
confirmed: {
type: Boolean,
default: false
},
confirmToken: {
type: String,
default: ''
},
confirmTokenExpires: {
type: Date,
default: () => new Date(+new Date() + 60 * 60 * 1000) //60 minutes
}, *more fields
});
У пользователя есть 1 час, чтобы подтвердить свой адрес электронной почты, после чего пользователь должен быть удален с вложенными документами. Пользователь удалил сейчас, но вложенные документы нет.
UserSchema.index(
{ 'confirmTokenExpires': 1 },
{
expireAfterSeconds: 0,
partialFilterExpression: { 'confirmed': false }
}
)
Я пытался найти решение, но вот я, надеюсь :) Заранее спасибо!