«Система».В названии коллекции в MongoDB - PullRequest
8 голосов
/ 12 января 2011

Я только что обнаружил странное поведение, демонстрируемое MongoDB.

Видимо, любое имя коллекции со строкой "system". где-нибудь в нем просто не будет работать правильно.

Что еще хуже, это даже не скажет вам, что что-то не так!

Это на самом деле больше любопытство, но кто-нибудь знает, почему это произойдет? Это где-то задокументировано?

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

1 Ответ

13 голосов
/ 12 января 2011

Вы верны "system. *" - это зарезервированное пространство имен коллекции, используемое MongoDB в каждой БД.

Используется для хранения индексов и пользователей и т. Д.

В SQL Server также есть много таких таблиц, и я не думаю, что они также предупреждают вас не использовать их:)

Но вы всегда можете запросить такую ​​функциональность: http://jira.mongodb.org/

Вы можете увидеть их, запустив ...

> show collections

и вы увидите что-то вроде ...

system.indexes

system.users

Итак, вы можете увидеть свои индексы, например:

> db.system.indexes.find()

Из документов MongoDB:

Система имен . * в MongoDB являются специальными и содержат база данных системной информации. система Коллекции включают в себя:

  • system.namespaces перечисляет все пространства имен.
  • system.indexes перечисляет все индексы.
  • В базе данных существуют дополнительные метаданные пространства имен / индекса. файлы и является непрозрачным.
  • system.profile хранит информацию о профилировании базы данных.
  • system.users перечисляет пользователей, которые могут получить доступ к базе данных.
  • local.sources хранит данные о конфигурации и состоянии реплики подчиненного устройства.
  • Информация о структуре хранимого объекта хранится в сам объект. Смотри BSON.

Есть несколько ограничений на манипулирование объектами в системе коллекции. Вставка в system.indexes добавляет индекс, но в противном случае эта таблица является неизменной ( специальная команда drop index обновляет его для тебя). system.users является изменяемым. system.profile может быть сброшен.

http://docs.mongodb.org/manual/reference/system-collections/

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