#mongodb #storage
#mongodb #Хранение
Вопрос:
как mongodb хранит и управляет метаданными?
например, я хочу знать, сколько полей в коллекции или сколько коллекций в БД.
я могу использовать show collections
для отображения коллекций, но я не знаю, как они хранятся в mongodb в виде документа?
как mongodb хранит и управляет метаданными?
например, я хочу знать, сколько полей в коллекции или сколько коллекций в БД.
я могу использовать show collections
для отображения коллекций, но я не знаю, как они хранятся в mongodb в виде документа?
Комментарии:
1. Да, большую часть такой информации вы найдете в базе данных
config
Ответ №1:
MongoDB хранит свои коллекции в файлах в настроенной папке данных. Формат данных в коллекциях — BSON (двоичный JSON). MongoDB ориентирован на документы, поэтому в каждом документе могут быть разные поля. Каждый документ представляет собой хорошо отформатированный JSON, тогда документ содержит метаданные, хранящиеся внутри него. Например:
{
"_id":{"$oid":"5fbcec5b0f751ebbc4d46516"},
"health":"green",
"status":"open",
"pri":1,
"rep":2
}
Метаданные поля хранятся в самом документе.
Тип поля выводится как JSON: с кавычками — строка, без кавычек — число.
Внутри объекты Date хранятся в виде 64-разрядного целого числа со знаком, представляющего количество миллисекунд, прошедших с эпохи Unix (1 января 1970 года).). Вы можете записать объект Date, используя метод new Date(string) .
Комментарии:
1. На самом деле, я хочу знать метаданные коллекций и баз данных, а не документов. Как я могу запросить их?
2. В оболочке нет методов для запроса этой информации. Фактически, парадигма в MongoDB заключается в том, что приложение управляет схемой, поэтому информация о схеме должна быть в вашем приложении, а не в вашей БД. Если вам нужна фиксированная схема, управляемая ядром базы данных, поэтому MongoDB делает неправильный выбор.
3. Показать коллекции перечислите ваши коллекции в текущей базе данных. Чтобы перечислить их из приложения, вы можете использовать метод getCollectionNames() . Кроме того, вы можете использовать метод getCollectionInfos(), который возвращает некоторую информацию о коллекциях, такую как тип коллекции, индекс и параметры, но он не показывает вам схему, потому что может отличаться для каждого документа.