Люди регистрируются на событие. В базе данных есть две коллекции. Один для новых регистраций и один для регистраций предыдущих лет. Оба содержат поле электронной почты в качестве уникального идентификатора.
Я хотел бы знать, возможно ли проверить, регистрировался ли недавно зарегистрированный человек ранее в предыдущие годы. Если это так, добавьте поле, например: returningCustomer: true
. В противном случае добавьте returningCustomer: false
Я использую Mon goose и у меня есть модель User
для новых регистраций. У меня нет модели (пока) для ранее зарегистрированных пользователей. Это будет необходимо? Если есть возможность проверить, зарегистрировался ли ранее человек, и можно ли добавить поле перед сохранением, может быть также удобно сразу же сохранить пользователя в коллекции возвращающихся клиентов.
Я знаю, что возможно получить доступ к текущему документу и коллекции с помощью ловушки предварительного сохранения, но как насчет поиска в другой коллекции, написать немного logi c и добавить поле в текущий документ перед сохранением?
userSchema.pre('save', function (doc, next) {
const exists = otherCollection.find({ email: doc.email });
exists ? doc.returningCustomer = true : doc.returningCustomer = false;
next();
});