Есть ли технические недостатки использования одной коллекции в нескольких коллекциях в MongoDB? - PullRequest
0 голосов
/ 26 февраля 2020

Поскольку MongoDB не имеет схемы, я могу просто поместить все свои документы в одну коллекцию с ключом collection и индексом для этого ключа.

Например, это:

db.getCollection('dogs').find()
db.getCollection('cars').find()

Стало бы это:

db.getCollection('all').find({'collection': 'dogs'})
db.getCollection('all').find({'collection': 'cars'})

Есть ли какие-либо технические недостатки в этом?

Ответы [ 2 ]

0 голосов
/ 27 февраля 2020

вопросы схемы часто лучше понять, работая в обратном направлении от запросов, на которые вы будете полагаться, и от того, как будут записываться данные .... если вы собирались запросить Field1 и Field2 вместе в 1 операторе запроса, вы хотите, чтобы они были в одна и та же коллекция .... собаки и машины звучат не очень тесно, в то время как собаки и кошки ... так что посмотрите на то, как вы захотите сделать запрос ..... объединение коллекций не совсем идеально - выполнимо через $ lookup, но не идеально ...

0 голосов
/ 26 февраля 2020

Есть несколько причин иметь разные коллекции, возможно, два наиболее важных фактора:

  • Производительность: даже если MongoDB был спроектирован как гибкий, он не исключает необходимости иметь индексы на полях, которые будут использоваться при поиске. У вас будет драматическое c время отклика, если коллекция слишком разнородна.
  • Поддерживаемость / эволюционность: дизайн должен определяться сценариями использования (обычно вы будете хранить данные в том виде, как они получены приложением) и дизайн должен быть понятен всем, кто просматривает коллекции баз данных

Университет MongoDB - это отличная платформа для электронного обучения, она бесплатна и, в частности, этот курс:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...