#node.js #mongoose
#node.js #mongoose
Вопрос:
Я создаю приложение, которое использует UID мобильного устройства в качестве одного из средств аутентификации сеансов для каждой родительской модели. Я намереваюсь, будучи пользователем, пройти аутентификацию у нескольких родителей, но иметь только одну запись сеанса в базе данных для каждого родителя.
ParentSchema {
sessions: [{
device_uid: { type: String, unique: true }
}]
}
Session — это его собственный объект схемы (написанный встроенным для простоты).
Мой вопрос: если я помещу уникальную проверку в device_uid, является ли контекст проверки вложенными документами для его родительского элемента или ВСЕМИ вложенными документами сеанса для ВСЕХ родителей?
Ответ №1:
Уникальный индекс в device_uid
вложенном документе sessions
массива гарантирует, что ни в одном из двух документов не может быть sessions
элемента массива с одинаковым device_uid
значением. Однако это по-прежнему позволяет двум элементам в одном документе иметь одинаковое значение device_uid
.
Комментарии:
1. Интересно. Таким образом, даже если вложенный документ является его собственной схемой, уникальная проверка по-прежнему выполняется в контексте самой верхней родительской схемы или документа?
2. @snowman4415 правильно. Индексы Mongoose всегда реализуются с использованием индекса MongoDB, определенного в коллекции.