Я новичок в MongoDB и mongoose, я читал, что mongodb не имеет схемы, но я также читал, что можно и рекомендуется определять схему. Зачем мне нужно определять схему, если db не требует ее?Зачем определять схему?
ответ
Поскольку чаще всего документы в вашей базе данных представляют собой экземпляры контейнеров с повторно используемыми объектами (прототипы/классы). Они обычно выглядят как минимум в основном похожими.
Хотя существует множество парадигм программирования, связанных с системами структуры объекта/типа (полиморфизм, [protoypical/multiple] наследование, утиная печать и т. Д.), Общий знаменатель состоит в том, что имеет смысл как-то упорядочить определенные поля данных вместе ,
Поскольку MongoDB не применяет строгую схему, он совместим практически со всеми этими парадигмами. При использовании MongoDB для хранения экземпляров повторно используемых типов контейнеров просто имеет смысл определить такую схему, будь то потому, что она помогает оболочкам предлагать удобные методы, помощники проверки или вводить разумные значения по умолчанию.
Вы также можете использовать MongoDB как большую хэш-таблицу для документов JSON - в этом случае схема не имеет смысла.
- 1. Зачем определять пустую переменную?
- 2. Зачем определять функцию внутри $()?
- 3. Зачем определять множественный импорт?
- 4. Зачем определять 'x' int (C)
- 5. extjs combo override: зачем определять this.addevents()?
- 6. Зачем определять макросы перед их определением?
- 7. Зачем определять абстрактный интерфейс в Java
- 8. зачем определять lt, когда оператор <существует?
- 9. Зачем определять глобальные элементы в документе экземпляра?
- 10. Зачем определять заводскую функцию для записей?
- 11. Как читать файл JSON и определять схему в Talend
- 12. Зачем встраивать объекты в схему Mongoose?
- 13. Зачем определять \ 0 как первый элемент массива char в C?
- 14. Зачем определять ('RELOCATE', true) для удаления из wordpress config?
- 15. Зачем определять свою собственную процедуру/функцию при использовании СУБД?
- 16. Зачем определять частных членов ниже публичных членов на C++?
- 17. Зачем кому-то определять макрос C с неиспользуемыми аргументами/параметрами?
- 18. Зачем определять подкласс как друга своего родительского класса?
- 19. Зачем определять переменную-указатель функции-члена для имени класса?
- 20. Зачем нужно определять как STATIC_URL, так и STATICFILES_DIRS?
- 21. Зачем определять промежуточные экземпляры для вызова метода в Python?
- 22. В Javascript зачем определять массив с помощью split?
- 23. Зачем определять архитектуру в cmake для генераторов с несколькими конфигурациями
- 24. Зачем определять абстрактные классы C# без абстрактных членов
- 25. Зачем использовать анонимный enum и определять макросы для констант?
- 26. Зачем определять геттер перед установщиком (соглашение о кодировании)
- 27. Зачем определять шаблон внутри стиля в xaml, WPF?
- 28. Зачем определять макрос, если он еще не определен?
- 29. Зачем нужно определять параметризованное лямбда-выражение при указании объекта состояния?
- 30. Scrapy: динамически определять элементы