Я присоединился к этому новому проекту, использующему MongoDB, и увидел такую структуру:
коллекция: Пользователи
salutation (ObjectId) name (String) status (ObjectId)
ObjectId("111") Mark ObjectId("112")
коллекция: Ценности
_id description (String)
ObjectId("111") Mr.
ObjectId("112") active
Для всех значений, которые нельзя изменить, они ссылаются на идентификатор коллекции значений. Я не знаю, является ли это обычной практикой в реляционных базах данных, но я пока не видел этого в MongoDB.
Они используют Nestjs и Mongoose.
Для каждого запроса им необходимо запросить коллекцию пользователей и несколько раз коллекцию значений. Хороший ли это подход?
Пожалуйста, избегайте использования коллекции Values, которая не является хорошим стандартом в монго. Если вам нужен список допустимых значений приветствия, вы можете создать коллекцию приветствий и так далее.
Тем не менее, все будет зависеть от варианта использования. Иногда вы сможете вкладывать атрибуты, а иногда вам нужно будет иметь другую коллекцию и указать на эту новую коллекцию с идентификатором объекта.
Вы можете прочитать обо всех шаблонах проектирования mongo и каждом варианте использования здесь: https://www.mongodb.com/blog/post/building-with-patterns-a-summary
Я чувствую, что в этом случае вы должны вложить значения пользователя в коллекцию пользователей, и это будет хорошо.
У вас может быть что-то вроде этого:
{
"name": "Derek",
"status": "active",
"salutation": "Mr."
}
Если нет, вам нужно будет выполнить поиск таким образом, чтобы получить значения, и это не будет иметь хорошей производительности.