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

В приведенном ими примере используется коллекция журналов .

{ log: "dev", ts: ..., info: ... }
{ log: "debug", ts: ..., info: ...}

И они говорят

Если общее количество документов мало , вы можете сгруппировать документы в коллекции по типу. Для журналов рекомендуется поддерживать отдельные коллекции журналов, например logs.dev и logs.debug . Коллекция logs.dev будет содержать только документы, относящиеся к среде разработки.

Мне было интересно, что они имели в виду, говоря о низком общем количестве документов, но затем я нашел документы для ограничений MongoDB , которые имели смысл.

Итак, мой вопрос: если есть эти ограничения на коллекции пространств имен, какие преимущества в их использовании вместо использования новых коллекций, таких как logs_dev и logs_debug ?

Спасибо.

1
Blue Skies 9 Окт 2013 в 02:40

1 ответ

Лучший ответ

Нет ничего особенного в именах коллекций, которые включают .; коллекции с именами logs_dev и logs_debug ведут себя так же, как коллекции с именами logs.dev и logs.debug. Все они полностью независимые коллекции.

Я считаю, что процитированная документация пытается передать в таком случае использования, как ведение журнала, вы можете либо поместить все связанные документы в единую коллекцию (где документы различаются по полю, например type в примере) или поместить их в отдельные коллекции. А если вы помещаете их в отдельные коллекции, подумайте об использовании именования в стиле пространства имен, чтобы было ясно, что коллекции слабо связаны.

5
JohnnyHK 9 Окт 2013 в 03:41
1
Спасибо. В той же документации говорится: «В одном файле .ns хранятся все метаданные для каждой базы данных. Каждый индекс и коллекция имеют свою собственную запись в файле пространства имен, MongoDB накладывает ограничения на размер файлов пространства имен». Значит, когда они говорят « .ns», часть «.ns» на самом деле означает любое имя коллекции?
 – 
Blue Skies
9 Окт 2013 в 04:41
Хорошо, еще раз спасибо. Тем не менее, часть «Если общее количество документов мало» сбивает с толку. Может быть, они имеют в виду небольшое количество категорий документов, например dev и debug ? В любом случае, я ценю вашу помощь.
 – 
Blue Skies
9 Окт 2013 в 05:33