Хобрук: Ваш путь к мастерству в программировании

Понять населенность в мангусте

У меня есть коллекции "Книга" и "Автор". Книгу могут написать несколько авторов. Итак, коллекции выглядят так:

Book: {
id: objectId,
name: string,
price: number,
authors: [objectId]
}

Author: {
id: objectId,
nameL string
}

Поле автора коллекции Book - это массив objectId автора. Когда я захочу получить несколько книг и их авторов, я получу массив objectId автора. Затем для каждого элемента objectId я найду автора. Другой способ сделать это - использовать populate. Но я не знаю, как присоединиться к реляционной базе данных? У него производительность лучше, чем у первого способа?


Ответы:


1

Я предполагаю, что у вас будут данные о книгах по каждому из авторов. Вместо использования populate (потому что populate находится в мангусте) я использую $lookup в mongodb, и это больше похоже на присоединение к реляционной базе данных. Вот документация

https://docs.mongodb.com/manual/reference/operator/aggregation/lookup/#use-lookup-with-an-array.

29.01.2021
  • $lookup быстрее, чем populate? 29.01.2021
  • Я не пытался сравнивать между ними, но я прочитал этот пост на medium в качестве ссылки на мой ответ. Я думаю, вы могли бы сделать то же самое, если вам нужна точная производительность 30.01.2021
  • Новые материалы

    Основы принципов S.O.L.I.D, Javascript, Git и NoSQL
    каковы принципы S.O.L.I.D? Принципы SOLID призваны помочь разработчикам создавать надежные, удобные в сопровождении приложения. мы видим пять ключевых принципов. Принципы SOLID были разработаны..

    Как настроить Selenium в проекте Angular
    Угловой | Селен Как настроить Selenium в проекте Angular Держите свое приложение Angular и тесты Selenium в одной рабочей области и запускайте их с помощью Mocha. В этой статье мы..

    Аргументы прогрессивного улучшения почти всегда упускают суть
    В наши дни в кругах веб-разработчиков много болтают о Progressive Enhancement — PE, но на самом деле почти все аргументы с обеих сторон упускают самую фундаментальную причину, по которой PE..

    Введение в Джанго Фреймворк
    Схема «работать умно, а не усердно» В этой и последующих статьях я познакомлю вас с тем, что такое фреймворк Django и как создать свое первое приложение с помощью простых и понятных шагов, а..

    Настольный ПК как «одно кольцо, чтобы править всеми» домашних компьютеров
    Вид после 9 месяцев использования С настольных компьютеров все началось, но в какой-то момент они стали «серверами», и мы все перешли на ноутбуки. В прошлом году я столкнулся с идеей настольных..

    Расширенные методы безопасности для VueJS: реализация аутентификации без пароля
    Руководство, которое поможет вам создавать безопасные приложения в долгосрочной перспективе Безопасность приложений часто упускается из виду в процессе разработки, потому что основная..

    стройный-i18следующий
    Представляем стройную оболочку для i18next. Эта библиотека, основанная на i18next, заключает экземпляр i18next в хранилище svelte и отслеживает события i18next, такие как languageChanged,..