Эта статья является частью нашего курса Академии под названием MongoDB — A Scalable NoSQL DB .
В этом курсе вы познакомитесь с MongoDB. Вы узнаете, как установить его и как управлять им через оболочку. Кроме того, вы узнаете, как получить программный доступ к нему через Java и как использовать Map Reduce с ним. Наконец, будут объяснены более сложные понятия, такие как шардинг и репликация. Проверьте это здесь !
Содержание
1. Введение
Оболочка MongoDB — это лучший инструмент для обнаружения функций MongoDB и управления каждым аспектом развертывания вашего сервера, экземпляров, баз данных, коллекций и документов. Он основан на языке JavaScript для выполнения команд и запросов. Пожалуйста, не беспокойтесь, если у вас мало или нет знаний о JavaScript : в большинстве случаев вы сможете легко понять каждый пример, так как есть общий шаблон для подражания.
Поскольку JSON является форматом для управления документом, он также используется для указания команд и запросов, а также для возврата их результатов. Такое объединение приносит много преимуществ, потому что JSON по своей природе прост, удобен для человека и легок для понимания.
В этой части руководства мы намерены выполнить большинство команд и запросов, поддерживаемых MongoDB, используя его оболочку, за исключением тех, которые относятся к шардингу (будет подробно рассмотрено в части 4. Руководство по шардингу MongoDB ) и репликации (будет рассмотрено подробно в части 5. Руководство по репликации MongoDB ). Более сложные темы будут рассмотрены в части 7. Руководство по безопасности, профилированию, индексированию, курсорам и массовым операциям MongoDB .
Каждый раздел посвящен определенному аспекту MongoDB : мы начинаем с помощников команд оболочки , затем смотрим на базы данных , коллекции и документы , переходим к запросам и агрегатам и заканчиваем командами, специфичными для сервера .
MongoDB имеет много внутренних и экспериментальных команд, которые мы не рассмотрим. Их использование ограничено очень конкретными сценариями, с которыми вы можете никогда не столкнуться (или их поведение может быть нестабильным).
В следующих разделах предполагается, что ваш экземпляр сервера MongoDB запущен и работает на локальном компьютере, как описано в части 1. Установка MongoDB — Как установить MongoDB .
2. Помощники командных оболочек
Оболочка MongoDB предоставляет несколько командных помощников, которые позволяют устанавливать контекст и неявно заполнять переменные оболочки, включая:
- db: текущая переменная контекста базы данных
- rs: контекстная переменная набора реплик
- sh: контекстная переменная шардинга
Без предоставленных аргументов командной строки оболочка MongoDB по умолчанию подключается к локальному экземпляру сервера MongoDB через порт 27017 и базе данных с проверкой имени (которая может физически отсутствовать на диске).
команда | использовать <база данных> |
Описание | Переключает текущую базу данных на <database> и назначает переменную оболочки db текущей базе данных. |
пример | В оболочке MongoDB давайте выполним команду: использовать mydb |
Ссылка | http://docs.mongodb.org/manual/reference/mongo-shell/#command-helpers |
использовать <база данных>
команда | показать дбс
показать базы данных |
Описание | Выводит список всех баз данных на экземпляре сервера. |
пример | В оболочке MongoDB давайте выполним команду: show dbs (или show database) |
Ссылка | http://docs.mongodb.org/manual/reference/mongo-shell/#command-helpers |
показать дбс
показать базы данных
команда | показать коллекции |
Описание | Выводит список всех коллекций для текущей базы данных. |
пример | В оболочке MongoDB давайте выполним команды:
|
Ссылка | http://docs.mongodb.org/manual/reference/mongo-shell/#command-helpers |
показать коллекции
команда | показать пользователям |
Описание | Выводит список пользователей для текущей базы данных с их ролями и пользовательскими данными (если есть). |
пример | В оболочке MongoDB давайте выполним команду: show users |
Ссылка | http://docs.mongodb.org/manual/reference/mongo-shell/#command-helpers |
показать пользователям
команда | показать роли |
Описание | Выводит список всех ролей, как пользовательских, так и встроенных, для текущей базы данных. |
пример | В оболочке MongoDB давайте выполним команду: show role Примечание. Отображается только фрагмент выходных данных. |
Ссылка | http://docs.mongodb.org/manual/reference/mongo-shell/#command-helpers |
показать роли
команда | показывать логи |
Описание | Показывает доступные имена регистратора. |
пример | В оболочке MongoDB давайте выполним команду: show logs |
Ссылка | http://docs.mongodb.org/manual/reference/mongo-shell/#command-helpers |
показывать логи
команда | показать журнал [имя] |
Описание | Выводит последний сегмент журнала в памяти. Если имя регистратора не указано, глобальный регистратор будет использоваться по умолчанию. |
пример | В оболочке MongoDB давайте выполним команду: show log global |
показать журнал [имя]
команда | нагрузка (<имя файла>) | ||
Описание | Загружает и выполняет файл JavaScript с именем filename в текущей среде оболочки MongoDB . | ||
пример | Давайте подготовим пример сценария db.js , который находится в папке установки MongoDB , который просто перечисляет все доступные базы данных и выводит их имена на консоль:
В оболочке MongoDB давайте выполним команду: load (‘db.js’) |
||
Ссылка | http://docs.mongodb.org/manual/reference/method/load/ |
нагрузка (<имя файла>)
команда | Помогите |
Описание | Показывает быструю помощь по командам оболочки. |
пример | В оболочке MongoDB давайте выполним команду: help |
Ссылка | http://docs.mongodb.org/manual/reference/mongo-shell/#command-helpers |
Помогите
В оболочке MongoDB есть как минимум два способа запуска команд:
- используя общий вызов функции db.runCommand ()
- используя более удобные вызовы функции-оболочки db. <command> или db. <collection>. <command>
В большинстве случаев второй вариант гораздо более читабелен, и это будет выбор для наших примеров в следующих разделах. В большинстве случаев оба варианта будут показаны рядом (если применимо), поэтому вы сможете выбрать свой любимый способ запуска команд. Обратите внимание, что не все команды имеют оболочки оболочки MongoDB, и поэтому их можно запускать только с помощью вызова функции db.runCommand () .
команда | db.runCommand (<команда>) |
Описание | Предоставляет помощника для запуска указанных команд базы данных. Это предпочтительный метод для выдачи команд базы данных, поскольку он обеспечивает согласованный интерфейс между оболочкой и драйверами. |
пример | В оболочке MongoDB давайте выполним команду: db.runCommand ({buildInfo: 1}) |
Ссылка | http://docs.mongodb.org/manual/reference/method/db.runCommand/ |
db.runCommand (<команда>)
команда | версия() |
Описание | Возвращает текущую версию экземпляра оболочки MongoDB . |
пример | В оболочке MongoDB давайте выполним команду: version () |
Ссылка | http://docs.mongodb.org/manual/reference/method/version/ |
версия()
команда | getHostName ()
имя хоста () |
Описание | Возвращает имя хоста системы, в которой работает оболочка MongoDB . |
пример | В оболочке MongoDB давайте выполним команду: hostname () (или getHostName () ) |
Ссылка | http://docs.mongodb.org/manual/reference/method/hostname/
http://docs.mongodb.org/manual/reference/method/getHostName/ |
getHostName ()
имя хоста ()
команда | getMemInfo () |
Описание | Возвращает документ с двумя полями, в которых указан объем памяти (в мегабайтах), используемый оболочкой JavaScript MongoDB :
|
пример | В оболочке MongoDB давайте выполним команду: getMemInfo () |
Ссылка | http://docs.mongodb.org/manual/reference/method/getMemInfo/ |
getMemInfo ()
команда | уволиться() |
Описание | Выход из текущего сеанса оболочки. |
Ссылка | http://docs.mongodb.org/manual/reference/method/quit/ |
уволиться()
3. Базы данных
База данных — это контейнер данных верхнего уровня в MongoDB, который содержит одну или несколько коллекций документов. Для каждой базы данных MongoDB создает физический файл (или файлы) на диске, активно выделяя файлы данных, чтобы зарезервировать пространство и избежать фрагментации файловой системы.
Имена файлов данных следуют шаблону: первый файл данных имеет имя <databasename> .0, следующий — <databasename> .1 и так далее. Размер первого предварительно выделенного файла составляет 64 мегабайта , второй — 128 мегабайт , следующий — 256 мегабайт и т. Д., Максимальный размер — 2 гигабайта (в этот момент все последующие файлы будут иметь размер 2 гигабайта ). , Следует помнить одну вещь: MongoDB не будет постоянно создавать базу данных, пока в нее не будут вставлены данные.
По умолчанию MongoDB также создает файлы журнала, в которых хранятся операции записи на диск до их применения к базам данных.
команда | db.help () |
Описание | Показать справку для методов базы данных. |
пример | В оболочке MongoDB давайте выполним команду: db.help () Примечание. Отображается только фрагмент выходных данных. |
Ссылка | http://docs.mongodb.org/manual/reference/method/db.help/#db.help |
db.help ()
команда | db.commandHelp (<команда>) |
Описание | Отображает справочную информацию для конкретной команды <команда> с примерами использования и ожидаемыми параметрами. |
пример | В оболочке MongoDB давайте выполним команду: db.commandHelp (‘filemd5’) |
Ссылка | http://docs.mongodb.org/manual/reference/method/db.commandHelp/ |
db.commandHelp (<команда>)
команда | db.getName () |
Описание | Возвращает текущее имя базы данных. |
пример | В оболочке MongoDB давайте выполним команду: db.getName () |
Ссылка | http://docs.mongodb.org/manual/reference/method/db.getName/ |
db.getName
команда | db.getSiblingDB (<база>) |
Описание | Возвращает другую базу данных без изменения переменной db в среде оболочки. Его можно использовать в качестве альтернативы использованию помощника <database> (см., Пожалуйста, Shell Command Helpers ). |
пример | В оболочке MongoDB давайте выполним команду: db.getSiblingDB (‘admin’). GetName () |
Ссылка | http://docs.mongodb.org/manual/reference/method/db.getSiblingDB/ |
db.getSiblingDB (<база>)
Каждый экземпляр сервера MongoDB имеет свою собственную локальную базу данных, в которой хранятся данные, используемые в процессе репликации, и другие данные, специфичные для экземпляра. Репликация не затрагивает локальную базу данных: коллекции в локальной базе данных никогда не реплицируются ( часть 5. В руководстве по репликации MongoDB больше говорится о репликации). Кроме того, существует административная база данных — привилегированная база данных, к которой пользователи должны иметь доступ для выполнения определенных административных команд.
Для запуска команды в контексте базы данных администратора доступны следующие параметры:
-
12
use admin
db.runCommand( <command> )
Обратите внимание, что текущая база данных будет переключена на администратора .
-
1
db.getSiblingDB(
'admin'
) .runCommand( <command> )
Чуть больше многословных связанных вызовов, но текущая база данных не будет переключаться и останется неизменной.
-
1
db.adminCommand( <command> )
Ярлык для db.getSiblingDB (‘admin’) .runCommand (<команда>) .
команда | listCommands |
обертка | db.listCommands () |
Описание | Отображает список всех команд базы данных с примерами использования и ожидаемыми параметрами. Команды, которые требуют административных привилегий, помечены как adminOnly . |
пример | В оболочке MongoDB давайте выполним команду: db.listCommands () В качестве альтернативы, давайте запустим ту же команду с помощью вызова runCommand () : db.runCommand ({listCommands: 1}) Примечание: показан только фрагмент выходных данных. |
Ссылка | http://docs.mongodb.org/manual/reference/command/listCommands/
http://docs.mongodb.org/manual/reference/method/db.listCommands/ |
listCommands
команда | listDatabases |
Описание | Эта команда предоставляет список существующих баз данных вместе с базовой статистикой о них. Он должен быть запущен в контексте базы данных администратора . |
пример | В оболочке MongoDB давайте выполним команду: db.getSiblingDB (‘admin’). RunCommand ({listDatabases: 1}) |
Ссылка | http://docs.mongodb.org/manual/reference/command/listDatabases/ |
listDatabases
команда | COPYDB | ||
параметры |
|
||
обертка | db.copyDatabase (<fromdb>, <todb>, <fromhost>, <username>, <password>) | ||
Описание | Копирует базу данных с удаленного хоста на текущий хост или копирует базу данных в другую базу данных на текущем хосте. Он должен быть запущен в контексте базы данных администратора . | ||
пример | В оболочке MongoDB давайте выполним команду:
В качестве альтернативы, давайте запустим ту же команду, используя оболочку оболочки MongoDB : db.copyDatabase (‘test’, ‘test2’) |
||
Ссылка | http://docs.mongodb.org/manual/reference/command/copydb/
http://docs.mongodb.org/manual/reference/method/db.copyDatabase/ |
COPYDB
команда | dropDatabase |
обертка | db.dropDatabase () |
Описание | Удаляет текущую базу данных. Она должна быть запущена в контексте базы данных администратора . |
пример | В оболочке MongoDB давайте выполним команды:
Или даже самая короткая версия: db.getSiblingDB (‘test2’) .dropDatabase () |
Ссылка | http://docs.mongodb.org/manual/reference/command/dropDatabase/
http://docs.mongodb.org/manual/reference/method/db.dropDatabase/ |
dropDatabase
команда | клон |
обертка | db.cloneDatabase (<имя хоста> [: <порт>]) |
Описание | Эта команда клонирует базу данных с тем же именем, что и текущая база данных, из удаленного экземпляра MongoDB, запущенного на <hostname> andport <port>, на текущий хост. |
пример | Предположим, что в другом экземпляре сервера MongoDB, работающем на порту 27018 , давайте выполним команду в оболочке: db.cloneDatabase (‘localhost: 27018’) В качестве альтернативы, давайте запустим ту же команду с помощью вызова runCommand () : db.runCommand ({clone: ’localhost: 27018′}) |
Ссылка | http://docs.mongodb.org/manual/reference/command/clone/
http://docs.mongodb.org/manual/reference/method/db.cloneDatabase/ |
клон
команда | repairDatabase | ||
параметры |
|
||
обертка | db.repairDatabase () | ||
Описание | Проверяет и исправляет любые ошибки и несоответствия с хранилищем данных текущей базы данных. | ||
пример | В оболочке MongoDB давайте выполним команду: db.repairDatabase ()
В качестве альтернативы, давайте запустим ту же команду с помощью вызова runCommand () : db.runCommand ({repairDatabase: 1}) |
||
Ссылка | http://docs.mongodb.org/manual/reference/command/repairDatabase/
http://docs.mongodb.org/manual/reference/method/db.repairDatabase/ |
repairDatabase
команда | FSYNC | ||
параметры |
|
||
обертка | db.fsyncLock () / db.fsyncUnlock () | ||
Описание | Сбрасывает все ожидающие записи со слоя хранения на диск. При желании он может заблокировать экземпляр сервера и заблокировать операции записи для сбора резервных копий. Его следует запускать в контексте базы данных администратора . | ||
пример | В оболочке MongoDB давайте выполним команды:
В качестве альтернативы, давайте запустим ту же команду с помощью вызова runCommand () :
|
||
Ссылка | http://docs.mongodb.org/manual/reference/command/fsync/
http://docs.mongodb.org/manual/reference/method/db.fsyncLock/ http://docs.mongodb.org/manual/reference/method/db.fsyncUnlock/ |
FSYNC
команда | dbStats | ||
параметры |
|
||
обертка | db.stats (<scale>) | ||
Описание | Выводит статистику хранения для данной базы данных. | ||
пример | В оболочке MongoDB давайте выполним команду: db.stats ()
В качестве альтернативы, давайте запустим ту же команду с помощью вызова runCommand () : db.runCommand ({dbStats: 1}) |
||
Ссылка | http://docs.mongodb.org/manual/reference/command/dbStats/ |
dbStats
4. Коллекции
Коллекции — это контейнеры документов MongoDB, которые имеют один или несколько индексов. Для пользователей, знакомых с понятиями СУБД, коллекция является эквивалентом таблицы. Коллекция принадлежит одной базе данных и не применяет никакой схемы, содержащей документы. Не существует ограничения на количество документов, которое может содержать любая отдельная коллекция, если это не особый тип коллекции, называемый закрытой коллекцией: коллекция фиксированного размера, которая автоматически перезаписывает свои самые старые записи, когда достигает максимального размера.
Вместе с именем базы данных коллекции образуют пространство имен: имя базы данных объединяется с именем коллекции с использованием точки ‘ . ‘персонаж, например:
- test.collection1
- test.collection1.subcollection1
В дополнение к пользовательским коллекциям MongoDB хранит системную информацию в коллекциях, которые используют пространство имен <database> .system. * И зарезервированы для внутреннего использования. База данных администратора (см. Раздел « Базы данных ») включает в себя следующие системные коллекции:
- admin.system.roles
- admin.system.users
- admin.system.version
В каждой базе данных пользователей определены следующие системные коллекции:
- <База данных> .system.namespaces
- <База данных> .system.indexes
- <база> .system.profile
- <База данных> .system.js
В этом разделе мы не будем изучать системные коллекции напрямую, но если вы заинтересованы в получении более подробной информации, пожалуйста, обратитесь к официальной документации .
команда | дб. <коллекция> .help () |
Описание | Показать справку о методах сбора. <Collection> может быть именем существующей коллекции или несуществующей коллекции. |
пример | В оболочке MongoDB давайте выполним команду: db.mycoll.help ()
Примечание. Отображается только фрагмент выходных данных. |
дб. <коллекция> .help ()
команда | db.getCollectionNames () |
Описание | Возвращает все коллекции в текущей базе данных. |
пример | В оболочке MongoDB давайте выполним команду: db.getCollectionNames () |
Ссылка | http://docs.mongodb.org/manual/reference/method/db.getCollectionNames/ |
db.getCollectionNames ()
команда | db.getCollection (<имя>) |
Описание | Возвращает имя коллекции. Это полезно для коллекции, имя которой может взаимодействовать с самой оболочкой (например, начинается с _ или имеет то же имя, что и встроенная команда базы данных). |
пример | В оболочке MongoDB давайте выполним команду: db.getCollection (‘system.indexes’) |
Ссылка | http://docs.mongodb.org/manual/reference/method/db.getCollection/ |
db.getCollection (<имя>)
команда | Создайте | ||
параметры |
|
||
обертка | db.createCollection (<collection>, {capped: <true | false>, autoIndexId: <true | false>, размер: <число>, макс: <число>}) | ||
Описание | Явно создает новую коллекцию <collection> . | ||
пример | В оболочке MongoDB давайте выполним команду: db.createCollection (‘mycoll’, {capped: false})
В качестве альтернативы, давайте запустим ту же команду с помощью вызова runCommand () : db.runCommand ({create: ‘mycoll’, capped: false}) Последовательный вызов db.getCollectionNames () выводит вновь созданные коллекции. |
||
Ссылка | http://docs.mongodb.org/manual/reference/command/create/
http://docs.mongodb.org/manual/reference/method/db.createCollection/ |
Создайте
команда | падение | ||
параметры |
|
||
обертка | дб. <коллекция> .drop () | ||
Описание | Удаляет указанную коллекцию <collection> из базы данных. | ||
пример | В оболочке MongoDB давайте выполним команды:
В качестве альтернативы, давайте запустим ту же команду с помощью вызова runCommand () : db.runCommand ({drop: ‘mycoll’}) |
||
Ссылка | http://docs.mongodb.org/manual/reference/command/drop/
http://docs.mongodb.org/manual/reference/method/db.collection.drop/ |
падение
команда | renameCollection | ||
параметры |
|
||
обертка | дб. <коллекция>. renameCollection (<target>, <dropTarget>) | ||
Описание | Изменяет имя существующей коллекции <collection>. Она должна быть запущена в контексте базы данных администратора . | ||
пример | В оболочке MongoDB давайте выполним команды:
В качестве альтернативы, давайте запустим ту же команду с помощью вызова runCommand () : db.adminCommand ({renameCollection: ‘test.mycoll’, to: ‘test.mycoll2’}) |
||
Ссылка | http://docs.mongodb.org/manual/reference/command/renameCollection/
http://docs.mongodb.org/manual/reference/method/db.collection.renameCollection/ |
renameCollection
команда | Validate | ||
параметры |
|
||
обертка | БД. <collection> .validate (<full>) | ||
Описание | Проверяет правильность структур в коллекции <collection> путем сканирования данных и индексов коллекции. Команда возвращает информацию о представлении коллекции на диске. | ||
пример | В оболочке MongoDB давайте выполним команды:
В качестве альтернативы, давайте запустим ту же команду с помощью вызова runCommand () : db.runCommand ({validate: ‘mycoll’}) |
||
Ссылка | http://docs.mongodb.org/manual/reference/command/validate/
http://docs.mongodb.org/manual/reference/method/db.collection.validate/ |
Validate
команда | cloneCollection | ||
параметры |
|
||
обертка | db.cloneCollection (<from>, <collection>, <query>) | ||
Описание | Копирует коллекцию <collection> с удаленного хоста на текущий хост. | ||
пример | Предположим, что в другом экземпляре сервера MongoDB, работающем через порт 27018 , давайте выполним команду в оболочке: db.cloneCollection (‘localhost: 27018’, ‘test.mycoll’)
В качестве альтернативы, давайте запустим ту же команду с помощью вызова runCommand () : db.runCommand ({cloneCollection: ‘test.mycoll’, from: ‘localhost: 27018’}) |
||
Ссылка | http://docs.mongodb.org/manual/reference/command/cloneCollection/
http://docs.mongodb.org/manual/reference/method/db.cloneCollection/ |
cloneCollection
команда | cloneCollectionAsCapped | ||||
параметры |
|
||||
Описание | Создает новую ограниченную коллекцию <capped collection> из существующей <существующей коллекции> незаполненной коллекции в той же базе данных. Операция не влияет на исходную коллекцию без ограничения. | ||||
пример | В оболочке MongoDB давайте выполним команды:
|
||||
Ссылка | http://docs.mongodb.org/manual/reference/command/cloneCollectionAsCapped/ |
cloneCollectionAsCapped
команда | convertToCapped | ||||
параметры |
|
||||
Описание | Преобразует существующую коллекцию без ограничения <collection> в коллекцию с ограничением в той же базе данных. | ||||
пример | В оболочке MongoDB давайте выполним команды:
|
||||
Ссылка | http://docs.mongodb.org/manual/reference/command/convertToCapped/ |
convertToCapped
команда | collStats | ||
параметры |
|
||
обертка |
|
||
Описание | Возвращает различную статистику хранения для данной коллекции <collection> . | ||
пример | В оболочке MongoDB давайте выполним команду: db.mycoll.stats ()
В качестве альтернативы, давайте запустим ту же команду с помощью вызова runCommand () : db.runCommand ({collStats: ‘mycoll’}) |
||
Ссылка | http://docs.mongodb.org/manual/reference/command/collStats/
http://docs.mongodb.org/manual/reference/method/db.collection.stats/ http://docs.mongodb.org/manual/reference/method/db.collection.totalSize/ http://docs.mongodb.org/manual/reference/method/db.collection.dataSize/ http://docs.mongodb.org/manual/reference/method/db.collection.totalIndexSize/ http://docs.mongodb.org/manual/reference/method/db.collection.storageSize/ http://docs.mongodb.org/manual/reference/method/db.printCollectionStats/ |
db.printCollectionStats ()
команда | createIndexes | ||
параметры |
|
||
обертка | дб. <коллекция>. sureIndex (<ключи>, <параметры>) | ||
Описание | Создает один или несколько индексов для коллекции <collection> . | ||
пример | В оболочке MongoDB давайте выполним команду: db.mycoll.ensureIndex ({content: «text»})
В качестве альтернативы, давайте запустим ту же команду с помощью вызова runCommand () :
|
||
Ссылка | http://docs.mongodb.org/manual/reference/command/createIndexes/
http://docs.mongodb.org/manual/reference/method/db.collection.ensureIndex/ |
createIndexes
команда | dropIndexes | ||||
параметры |
|
||||
обертка | дб. <коллекция> .dropIndexes ()
дб. <коллекция> .dropIndex (<индекс>) |
||||
Описание | Удаляет один или все индексы из коллекции <collection> . Чтобы удалить все индексы, передайте ‘*’ в качестве значения <index> . | ||||
пример | В оболочке MongoDB давайте выполним команды:
В качестве альтернативы, давайте запустим ту же команду с помощью вызова runCommand () : db.runCommand ({dropIndexes: ‘mycoll’, index: ‘*’}) |
||||
Ссылка | http://docs.mongodb.org/manual/reference/command/dropIndexes/
http://docs.mongodb.org/manual/reference/method/db.collection.dropIndexes/ http://docs.mongodb.org/manual/reference/method/db.collection.dropIndex/ |
dropIndexes
команда | переиндексации | ||
параметры |
|
||
обертка | дб. <коллекция> .reIndex () | ||
Описание | Удаляет все индексы в коллекции <collection> и создает их заново. Эта операция может быть дорогой для коллекций, которые имеют большой объем данных и / или большое количество индексов. | ||
пример | В оболочке MongoDB давайте выполним команду: db.mycoll.reIndex ()
В качестве альтернативы, давайте запустим ту же команду с помощью вызова runCommand () : db.runCommand ({reIndex: ‘mycoll’}) |
||
Ссылка | http://docs.mongodb.org/manual/reference/command/reIndex/
http://docs.mongodb.org/manual/reference/method/db.collection.reIndex/ |
переиндексации
команда | компактный | ||
параметры |
|
||
Описание | Перезаписывает и дефрагментирует все данные в коллекции <collection> , а также все индексы в этой коллекции. | ||
пример | В оболочке MongoDB давайте выполним команду: db.runCommand ({compact: ‘mycoll’}) | ||
Ссылка | http://docs.mongodb.org/manual/reference/command/compact/ |
компактный
команда | collMod | ||
параметры |
|
||
Описание | Позволяет добавлять флаги в коллекцию <collection> для изменения ее поведения. | ||
пример | В оболочке MongoDB давайте выполним команду : db.runCommand ({collMod: ‘mycoll’, usePowerOf2Sizes: true}) | ||
Ссылка | http://docs.mongodb.org/manual/reference/command/collMod/ |
collMod
команда | дб. <коллекция> .isCapped () |
Описание | Возвращает true, если коллекция <collection> является закрытой коллекцией, в противном случае возвращает false. |
пример | В оболочке MongoDB давайте выполним команду : db.mycoll.isCapped () |
Ссылка | http://docs.mongodb.org/manual/reference/method/db.collection.isCapped/ |
db.isCapped
команда | дб. <коллекция> .copyTo (<newCollection>) | ||||
Описание | Копирует все документы из коллекции <collection> в новую коллекцию <newCollection>, используя серверный JavaScript. Если коллекция <newCollection> не существует, она будет создана. Команда возвращает количество скопированных документов (или 0, если исходная коллекция пуста). | ||||
пример | В оболочке MongoDB давайте выполним команды :
|
||||
Ссылка | http://docs.mongodb.org/manual/reference/method/db.collection.copyTo/ |
db.copyTo
5. Документы
В MongoDB данные представляются и хранятся в виде документов JSON : пары полей и значений. Точнее, MongoDB использует двоичный JSON (BSON) для хранения сериализованных документов на диске, но для пользователя он выглядит как обычный JSON (по крайней мере, в оболочке MongoDB ). Диапазон поддерживаемых типов полевых данных довольно внушителен (см. Ссылку на типы данных BSON ):
- двойной
- строка
- объект
- массив
- Двоичные данные
- Неопределенный
- Идентификатор объекта
- логический
- Дата
- Ноль
- Регулярное выражение
- JavaScript (с / без области)
- 32-разрядное целое число
- 64-разрядное целое число
- Отметка
Другие документы (так называемые встроенные документы), массивы, массивы документов и ссылок также поддерживаются.
Имена полей имеют несколько ограничений:
- Поле с именем _id зарезервировано для использования в качестве первичного ключа и должно быть уникальным для всей коллекции (оно является неизменным и может иметь любой тип, отличный от массива). Это поле всегда является первым полем в документе.
- Имена полей не могут начинаться со знака доллара ‘$’ и не могут содержать точку ‘.’ характер. Те защищены.
Например, простой документ, представляющий книгу, может выглядеть так:
1
2
3
4
5
6
7
8
|
{ "_id" : ObjectId( "536a5fe20ad33fcab3abfc0e" ), "title" : "MongoDB In Action" , "author" : { "firstName" : "Kyle" , "lastName" : "Banker" }, "isbn" : "978-1935182870" , "published" : new Date( "Dec 16, 2011" ), "categories" : [ "NoSQL" , "Document Databases" ] } |
Ссылки ( DBRef ) — это указатели из одного документа в другой (с использованием значения поля _id документа, имени коллекции и, необязательно, имени базы данных):
1
2
3
4
5
|
{ "$ref" : <collection>, "$id" : <document _id>, "$db" : <database> } |
Для пользователей, знакомых с концепциями СУБД, он может выглядеть аналогично внешним ключам и объединениям, но MongoDB не поддерживает объединения: для разрешения ссылки должен быть выполнен дополнительный запрос (или запросы). Тем не менее, это довольно полезная концепция для представления ссылок между документами. Возвращаясь к нашему примеру с Книгой , давайте предположим, что авторы хранятся в отдельной коллекции, и каждая книга будет иметь ссылку на своего автора. Вот пример документа Author :
1
2
3
4
5
|
{ "_id" : ObjectId( "536a60ef0ad33fcab3abfc0f" ), "firstName" : "Kyle" , "lastName" : "Banker" } |
И теперь каждая книга ссылается на автора по полю _id и типу DBRef :
1
2
3
4
5
6
7
8
|
{ "_id" : ObjectId( "536a5fe20ad33fcab3abfc0e" ), "title" : "MongoDB In Action" , "author" : DBRef( "authors" , "536a60ef0ad33fcab3abfc0f" ), "isbn" : "978-1935182870" , "published" : new Date( "Dec 16, 2011" ), "categories" : [ "NoSQL" , "Document Databases" ] } |
Позже в этом разделе мы увидим больше примеров вставки различных документов и использования ссылок на документы.
Следует помнить, что максимальный размер документа (представленного в формате BSON ) составляет 16 мегабайт . Для более полного обзора модели данных документа, пожалуйста, обратитесь к официальной документации .
команда | вставка | ||||||||
параметры |
|
||||||||
обертка | db. <collection> .insert (<документ или массив документов>, {writeConcern: {…}, упорядочено: <true | false>})
db. <collection> .save (<document>, writeConcern: {…}) |
||||||||
Описание | Вставляет один или несколько документов в коллекцию <collection> и возвращает документ, содержащий статус всех вставок. | ||||||||
пример | В оболочке MongoDB давайте выполним команду :
В качестве альтернативы, давайте запустим ту же команду с помощью вызова runCommand () :
Рассматривая пример со ссылкой из Book на ее Author , давайте выполним следующие команды в оболочке MongoDB :
|
||||||||
Ссылка | http://docs.mongodb.org/manual/reference/command/insert/
http://docs.mongodb.org/manual/reference/method/db.collection.insert/ http://docs.mongodb.org/manual/reference/method/db.collection.save/ |
вставка
Команды записи / обновления имеют понятие проблемы записи : гарантия, которую MongoDB предоставляет, сообщая об успешности операции записи. Сила записи проблем определяет уровень гарантии. Когда вставки, обновления и удаления имеют слабую запись, операции записи быстро возвращаются. Следовательно, при наличии серьезных проблем с записью клиенты могут ожидать экземпляры сервера MongoDB для подтверждения операций записи. В некоторых случаях сбоя операции записи, выполненные со слабой записью, могут не сохраняться. Мы вернемся к написанию проблемы в части 5. Руководство по репликации MongoDB, но если вы хотите получить более подробную информацию прямо сейчас, обратитесь к официальной документации .
команда | Обновить | ||||
параметры |
|
||||
обертка | db. <collection> .update (<query>, <update>, {upsert: <true | false>, multi: <true | false>, writeConcern: {…}})
db. <collection> .save (<document>, writeConcern: {…}) |
||||
Описание | Изменяет существующий документ или документы в коллекции <collection> или вставляет новый, если ни один документ не соответствует запросу и для параметра upsert установлено значение true . Команда может изменить определенные поля существующего документа или документов или полностью заменить существующий документ, в зависимости от обновления.
По умолчанию команда обновляет один документ, если параметр multi не имеет значения true, а затем будет выполнено обновление всех документов, соответствующих критериям запроса. Синтаксис запроса будет подробно обсуждаться в разделе « Запросы ». |
||||
пример | В оболочке MongoDB , давайте выполним команду (исходный документ будет заменен, если существует) :
Поскольку мы выполнили переход , результат выполнения намекает нам на то, что совпадений не найдено и новый документ вставлен. В качестве альтернативы, давайте запустим ту же команду с помощью вызова runCommand () :
|
||||
Ссылка | http://docs.mongodb.org/manual/reference/command/update/
http://docs.mongodb.org/manual/reference/method/db.collection.update/ http://docs.mongodb.org/manual/reference/method/db.collection.save/ |
Обновить
Команда update поддерживает множество операторов для управления семантикой модификации, которые перечислены в таблице ниже (более подробную информацию см. В официальной документации ):
оператор | Описание |
$ вкл | Увеличивает значение поля на указанную сумму. |
$ мул | Умножает значение поля на указанную сумму. |
$ переименовани | Переименовывает поле. |
$ setOnInsert | Устанавливает значение поля при создании документа во время upsert . Не влияет на операции обновления, которые изменяют существующие документы. |
$ комплект | Устанавливает значение поля в существующем документе. |
$ снята с охраны | Удаляет указанное поле из существующего документа. |
$ мин | Обновляется только в том случае, если существующее значение поля меньше указанного значения. |
$ макс | Обновляется только в том случае, если существующее значение поля больше указанного значения. |
$ CurrentDate | Устанавливает значение поля в текущую дату в виде даты или отметки времени. |
$ | Действует как заполнитель для обновления первого элемента, который соответствует условию запроса в обновлении. |
$ addToSet | Добавляет элементы в существующий массив, только если они еще не существуют в наборе. |
$ поп | Удаляет первый или последний элемент массива. |
$ pullAll | Удаляет все совпадающие значения из массива. |
$ тянуть | Удаляет все элементы массива, которые соответствуют указанному запросу. |
$ толчок | Добавляет элемент в массив. |
$ каждый | Изменяет операторы $ push и $ addToSet для добавления нескольких элементов для обновления массива. |
$ ломтика | Изменяет оператор $ push для ограничения размера обновляемых массивов. |
$ сортировать | Изменяет оператор $ push для изменения порядка документов, хранящихся в массиве. |
$ позиция | Изменяет оператор $ push, чтобы указать позицию в массиве для добавления элементов. |
$ бит | Выполняет побитовые И , ИЛИ , и XOR обновления целочисленных значений. |
$ изолированные | Изменяет поведение мульти-обновлений для улучшения изоляции операции. |
Обновить
Вот пример обновления с использованием некоторых операторов из таблицы выше:
1
2
3
4
5
6
7
|
db.books.update( { "title" : "MongoDB In Action" }, { "$inc" : { "rating" : 1 }, "$addToSet" : { "categories" : "MongoDB" } } ) |
команда | Удалить | ||||
параметры |
|
||||
обертка | db. <collection> .remove (<query>, {justOne: <true | false>, writeConcern: {…}}) | ||||
Описание | Удаляет документы из коллекции <collection> . Может быть предоставлено несколько спецификаций удаления. Команда не может работать с ограниченными коллекциями.
Синтаксис запроса будет подробно обсуждаться в разделе « Запросы ». |
||||
пример | В оболочке MongoDB давайте выполним команду :
В качестве альтернативы, давайте запустим ту же команду с помощью вызова runCommand () :
|
||||
Ссылка | http://docs.mongodb.org/manual/reference/command/delete/
http://docs.mongodb.org/manual/reference/method/db.collection.remove/ |
удалять
команда | findAndModify | ||||
параметры |
|
||||
обертка | дб. <коллекция>. findAndModify ({query: <query>, sort: <sort>, remove: <true | false>, update: <update>, new: <true | false>, поля: <fields>, upsert: <true | false> }) | ||||
Описание | Находит, изменяет и возвращает один документ в коллекции <collection> . По умолчанию возвращенный документ не содержит изменений, внесенных обновлением. Чтобы вернуть документ с внесенными изменениями, для новой опции должно быть установлено значение true . Если запрос выбирает несколько документов, параметр сортировки определяет, какой документ следует изменить. | ||||
пример | В оболочке MongoDB давайте выполним команды (обратите внимание, что оригинальный документ будет заменен обновленным):
В качестве альтернативы, давайте запустим ту же команду с помощью вызова runCommand () :
|
||||
Ссылка | http://docs.mongodb.org/manual/reference/command/findAndModify/
http://docs.mongodb.org/manual/reference/method/db.collection.findAndModify/ |
findAndModify
В последнем выпуске MongoDB представлена поддержка массовых операций, которая наряду с индексацией будет рассмотрена в части 7. Руководство по безопасности, профилированию, индексированию, курсорам и массовым операциям MongoDB .
6. Запросы
Запросы используются для извлечения данных, хранящихся в базе данных MongoDB . В MongoDB запросы выбирают документы только из одной коллекции (как мы уже знаем, объединения не поддерживаются). Запросы определяют критерии для сопоставления документов. Запрос может включать проекцию для выбора полей из соответствующих документов для возврата (весьма полезно для ограничения объема данных, которые следует отправлять по сети).
команда | db. <collection> .find (<критерии>, <проекция>) | ||
Описание | Выбирает документы в коллекции <collection> и возвращает курсор на выбранные документы. Курсоры будут рассмотрены в части 7. Руководство по безопасности, профилированию, индексированию, курсорам и массовым операциям MongoDB .
MongoDB поддерживает богатый набор операторов запросов (более подробную информацию см. В официальной документации ):
Параметр <projection> указывает, какие поля документа должны быть выбраны и возвращены клиентам:
|
||
пример | В оболочке MongoDB давайте выполним команды:
|
||
Ссылка | http://docs.mongodb.org/manual/reference/method/db.collection.find/ |
db.find
команда | db. <collection> .findOne (<критерии>, <проекция>) |
Описание | Возвращает только один документ из коллекции <collection>, который удовлетворяет заданным критериям запроса. Если несколько документов соответствуют запросу, этот метод возвращает первый документ в соответствии с естественным порядком, который отражает порядок документов на диске. В ограниченных коллекциях естественный порядок такой же, как порядок вставки. Эта команда очень похожа на описанную выше db. <Collection> .find (<критерии>, <проекция>), но ограничивает результат не более чем одним документом. |
пример | В оболочке MongoDB давайте выполним команды:
|
Ссылка | http://docs.mongodb.org/manual/reference/method/db.collection.findOne/ |
db.findOne
В последней версии MongoDB позволяет ограничить время обработки запроса с помощью опции maxTimeMS (миллисекунды). Обратите внимание, что maxTimeMS учитывает только процессорное время и не включает задержку в сети или время простоя.
db.books.find ({ «title» : { «$ regex» : «MongoDB»} } ) . maxTimeMS (500)
команда | geoNear | ||||||
параметры |
|
||||||
Описание | Определяет точку, для которой геопространственный запрос сначала возвращает ближайшие документы из <collection> . Запрос возвращает документы от ближайшего к дальнему. Это альтернатива оператору запроса $ near . Мы подробно рассмотрим гео-индексы в части 7. Руководство по безопасности, профилированию, индексированию, курсорам и массовым операциям MongoDB . | ||||||
пример | В оболочке MongoDB давайте выполним команды:
|
||||||
Ссылка | http://docs.mongodb.org/manual/reference/command/geoNear/ |
geoNear
команда | Геопоиск | ||||||
параметры |
|
||||||
Описание | Возвращает документы из коллекции <collection> на основе координат местоположения после сбора результатов на основе какого-либо другого запроса. | ||||||
пример | В оболочке MongoDB давайте выполним команды:
|
||||||
Ссылка | http://docs.mongodb.org/manual/reference/command/geoSearch/ |
Геопоиск
В части 7. Руководстве по безопасности, профилированию, индексированию, курсорам и массовым операциям MongoDB мы рассмотрим некоторые дополнительные темы, связанные с курсорами, профилированием запросов и планами запросов.
7. Агрегации
MongoDB предоставляет семейство команд для выполнения операций агрегации во всей коллекции (так называемая структура агрегации ). Большинство команд, которые мы собираемся охватить в этом разделе, кроме mapReduce , который будет описан в части 6. Учебник по MongoDB Map Reduce .
команда | подсчитывать | ||
параметры |
|
||
обертка | дб. <коллекция> .count (<запрос>) | ||
Описание | Подсчитывает количество документов в коллекции <collection> . Синтаксис запроса подробно обсуждается в разделе « Запросы ». | ||
пример | В оболочке MongoDB давайте выполним команду : db.mycoll.count ()
В качестве альтернативы, давайте запустим ту же команду с помощью вызова runCommand () : db.runCommand ( { « Count» : «mycoll» }) |
||
Ссылка | http://docs.mongodb.org/manual/reference/command/count/
http://docs.mongodb.org/manual/reference/method/db.collection.count/ |
подсчитывать
команда | отчетливый | ||||||
параметры |
|
||||||
обертка | db.collection.distinct (<field>, <query>) | ||||||
Описание | Находит отдельные значения для указанного ключа <field> в одной коллекции <collection> . Синтаксис запроса подробно обсуждается в разделе « Запросы ». | ||||||
пример | В оболочке MongoDB давайте выполним команды :
В качестве альтернативы, давайте запустим ту же команду с помощью вызова runCommand () : db.runCommand ( { «Отличный »: «книги», « ключ »: «название» }) |
||||||
Ссылка | http://docs.mongodb.org/manual/reference/command/distinct/
http://docs.mongodb.org/manual/reference/method/db.collection.distinct/ |
отчетливый
команда | группа | ||||||||
параметры |
|
||||||||
обертка | db.collection.group ({ключ: <ключ>, уменьшить: <уменьшить функцию>, начальный: <начальный>, ключ: <ключевая функция>, cond: <запрос>, завершить: <завершить функцию>}) | ||||||||
Описание | Группирует документы в коллекции <collection> по указанному ключу <field> и выполняет простые функции агрегирования, такие как подсчет и суммирование. Для пользователей, знакомых с понятиями СУБД, эта команда аналогична инструкции SELECT <…> GROUP BY <…> в SQL . Синтаксис запроса подробно обсуждается в разделе « Запросы ». | ||||||||
пример | В оболочке MongoDB давайте выполним команды :
В качестве альтернативы, давайте запустим ту же команду с помощью вызова runCommand () :
|
||||||||
Ссылка | http://docs.mongodb.org/manual/reference/command/group/
http://docs.mongodb.org/manual/reference/method/db.collection.group/ |
группа
команда | совокупный | ||||||||
параметры |
|
||||||||
обертка | db.collection.aggregate (<pipe>, {объяснение: <true | false>, allowDiskUse: <true | false>, курсор: <курсор>}) | ||||||||
Описание | Выполняет операцию агрегирования, используя конвейер агрегации <pipe> : обрабатывает данные из коллекции <collection> с помощью последовательности поэтапных манипуляций (более подробную информацию см. В официальной документации ).
Операторы агрегации трубопроводов включают в себя:
Каждый оператор конвейера также поддерживает операторы выражений для вычисления значений внутри конвейера (более подробную информацию см. В официальной документации ). |
||||||||
пример | В оболочке MongoDB давайте выполним команды :
В качестве альтернативы, давайте запустим ту же команду с помощью вызова runCommand () :
|
||||||||
Ссылка | http://docs.mongodb.org/manual/reference/command/aggregate/
http://docs.mongodb.org/manual/reference/method/db.collection.aggregate/ |
совокупный
8. GridFS
GridFS позволяет хранить и извлекать файлы, размер которых превышает ограничение размера документа MongoDB 16 МБ (см. Раздел « Документы »). Вместо того чтобы хранить файл в одном документе, GridFS делит файл на части (или порции) и сохраняет каждый из этих порций как отдельный документ. По умолчанию размер фрагмента составляет 255 КБ . GridFS хранит файлы в двух коллекциях (префикс fs может быть изменен):
- fs.chunks : сохраняет содержимое файла в виде двоичных фрагментов
- fs.files : хранит метаданные файла
Для более подробной информации, пожалуйста, обратитесь к официальной документации .
команда | filemd5 | ||
параметры |
|
||
Описание | Возвращает хеши MD5 для одного файла, сохраненного с использованием спецификации GridFS . | ||
пример | В оболочке запустим команду: bin / mongofiles положить bin / mongofiles
В оболочке MongoDB давайте выполним команду:
|
||
Ссылка | http://docs.mongodb.org/manual/reference/command/filemd5/ |
filemd5
8. Сервер
Сервер MongoDB поддерживает широкий спектр команд для проверки своих внутренних функций и мониторинга текущей деятельности. Чтобы удовлетворить потребности корпоративных развертываний, MongoDB имеет мощную модель безопасности на основе ролей, которая обеспечивает пользователям и приложениям доступ только к тем данным, которые им разрешены. Будучи большой темой, она будет рассмотрена в части 7. Руководство по безопасности, профилированию, индексированию, курсорам и массовым операциям MongoDB .
команда | Eval | ||||
параметры |
|
||||
обертка | db.eval (<функция>, <аргументы>) | ||||
Описание | Предоставляет возможность оценивать функции JavaScript на сервере MongoDB . | ||||
пример | В оболочке MongoDB давайте выполним команду:
В качестве альтернативы, давайте запустим ту же команду с помощью вызова runCommand () :
|
||||
Ссылка | http://docs.mongodb.org/manual/reference/command/eval/ |
Eval
команда | db.version () |
Описание | Возвращает версию экземпляра сервера MongoDB . |
пример | В оболочке MongoDB давайте выполним команду: db.version () |
Ссылка | http://docs.mongodb.org/manual/reference/method/db.version/ |
db.version ()
команда | db.getMongo () |
Описание | Возвращает текущее соединение с базой данных. |
пример | В оболочке MongoDB давайте выполним команду: db.getMongo () |
Ссылка | http://docs.mongodb.org/manual/reference/method/db.getMongo/ |
db.getMongo ()
команда | db.currentOp () |
Описание | Сообщает о текущих текущих операциях для экземпляра базы данных MongoDB |
пример | В оболочке MongoDB давайте выполним команду: db.currentOp () |
Ссылка | http://docs.mongodb.org/manual/reference/method/db.currentOp/ |
db.currentOp ()
команда | db.killOp (<opid>) |
Описание | Завершает операцию, указанную идентификатором операции (возвращается функцией db.currentOp () ). Рекомендация для этой команды — использовать ее для завершения операций, инициированных только клиентами, и не завершать операции внутренней базы данных. |
Ссылка | http://docs.mongodb.org/manual/reference/method/db.killOp/ |
db.killOp ()
команда | buildInfo |
обертка | db.serverBuildInfo () |
Описание | Возвращает сводку сборки для текущего экземпляра сервера MongoDB . |
пример | В оболочке MongoDB давайте выполним команду: db.serverBuildInfo ()
В качестве альтернативы, давайте запустим ту же команду с помощью вызова runCommand () : db.runCommand ({buildInfo: 1}) Примечание. Отображается только фрагмент выходных данных. |
Ссылка | http://docs.mongodb.org/manual/reference/command/buildInfo/
http://docs.mongodb.org/manual/reference/method/db.serverBuildInfo/ |
buildInfo
команда | hostInfo |
обертка | db.hostInfo () |
Описание | Возвращает информацию о базовой системе, на которой работает экземпляр сервера MongoDB . Некоторые из возвращенных полей включены только на некоторых платформах. |
пример | В оболочке MongoDB давайте выполним команду: db.hostInfo ()
В качестве альтернативы, давайте запустим ту же команду с помощью вызова runCommand () : db.runCommand ({hostInfo: 1}) Примечание. Отображается только фрагмент выходных данных. |
Ссылка | http://docs.mongodb.org/manual/reference/command/hostInfo/
http://docs.mongodb.org/manual/reference/method/db.hostInfo/ |
hostInfo
команда | Статус сервера |
обертка | db.serverStatus () |
Описание | Возвращает обзор состояния процесса экземпляра сервера MongoDB , включая различные статистические данные коллекции об экземпляре. |
пример | В оболочке MongoDB давайте выполним команду: db.serverStatus ()
В качестве альтернативы, давайте запустим ту же команду с помощью вызова runCommand () : db.runCommand ({serverStatus: 1}) Примечание. Отображается только фрагмент выходных данных. |
Ссылка | http://docs.mongodb.org/manual/reference/command/serverStatus/
http://docs.mongodb.org/manual/reference/method/db.serverStatus/ |
Статус сервера
команда | неисправность | ||||
обертка | db.shutdownServer () | ||||
Описание | Очищает все ресурсы базы данных и затем завершает текущий процесс экземпляра сервера MongoDB . Он должен быть запущен в контексте базы данных администратора . | ||||
пример | В оболочке MongoDB давайте выполним команды:
В качестве альтернативы, давайте запустим ту же команду с помощью вызова runCommand () : db.adminCommand ({shutdown: 1}) Обратите внимание, что вам необходимо перезапустить ваш экземпляр сервера MongoDB, когда команда завершит выполнение, поскольку она будет прервана, и оболочка MongoDB не сможет больше к ней подключиться. |
||||
Ссылка | http://docs.mongodb.org/manual/reference/command/shutdown/
http://docs.mongodb.org/manual/reference/method/db.shutdownServer/ |
неисправность
команда | getCmdLineOpts |
Описание | Вывод параметров командной строки, используемых для запуска текущего экземпляра сервера MongoDB . Он должен быть запущен в контексте базы данных администратора . |
пример | В оболочке MongoDB давайте выполним команду: db.adminCommand ({getCmdLineOpts: 1}) |
Ссылка | http://docs.mongodb.org/manual/reference/command/getCmdLineOpts/ |
getCmdLineOpts
команда | Вверх |
Описание | Возвращает статистику использования для каждой коллекции и предоставляет количество затраченного времени (в микросекундах) и количество операций для следующих типов событий:
Он должен быть запущен в контексте базы данных администратора . |
пример | В оболочке MongoDB давайте выполним команду: db.adminCommand ({top: 1})
Примечание. Отображается только фрагмент выходных данных. |
Ссылка | http://docs.mongodb.org/manual/reference/command/top/ |
верхняя
команда | getLog | ||
параметры |
|
||
Описание | Возвращает последние сообщения из текущего журнала процесса экземпляра сервера MongoDB . Параметр <log> может иметь одно из следующих значений:
Он должен быть запущен в контексте базы данных администратора . |
||
пример | В оболочке MongoDB давайте выполним команду: db.adminCommand ({getLog: 1})
Примечание. Отображается только фрагмент выходных данных. |
||
Ссылка | http://docs.mongodb.org/manual/reference/command/getLog/ |
getLog
команда | сенсорный | ||||
параметры |
|
||||
Описание | Загружает данные из слоя хранения данных в память. Он может загружать индексы, данные (документы) или как данные (документы), так и индексы. Выполнение этой команды гарантирует, что коллекция <collection> и / или ее индексы находятся / находятся в памяти перед началом другой операции. Загружая коллекцию или индексы в память, экземпляр сервера MongoDB может выполнять последующие операции более эффективно. | ||||
пример | В оболочке MongoDB давайте выполним команды:
|
||||
Ссылка | http://docs.mongodb.org/manual/reference/command/touch/ |
сенсорный
команда | LogRotate |
Описание | Позволяет вращать журналы экземпляров сервера MongoDB, чтобы один файл журнала не занимал слишком много места на диске. Он должен быть запущен в контексте базы данных администратора . |
пример | В оболочке MongoDB давайте выполним команду: db.adminCommand ({logRotate: 1}) |
Ссылка | http://docs.mongodb.org/manual/reference/command/logRotate/ |
LogRotate
команда | setParameter | ||
параметры |
|
||
Описание | Позволяет изменять параметры экземпляра сервера MongoDB , обычно устанавливаемые в командной строке. Параметр <option> может иметь одно из следующих значений:
Он должен быть запущен в контексте базы данных администратора . |
||
пример | В оболочке MongoDB давайте выполним команду: db.adminCommand ({setParameter: 1, «textSearchEnabled»: true}) | ||
Ссылка | http://docs.mongodb.org/manual/reference/command/setParameter/ |
setParameter
команда | getParameter | ||
параметры |
|
||
Описание | Позволяет получить значение параметров экземпляра сервера MongoDB , обычно устанавливаемых в командной строке. Параметр <option> соответствует спецификации команды setParameter . Он должен быть запущен в контексте базы данных администратора . | ||
пример | В оболочке MongoDB давайте выполним команду: db.adminCommand ({getParameter: 1, «textSearchEnabled»: 1}) | ||
Ссылка | http://docs.mongodb.org/manual/reference/command/getParameter/ |
getParameter
9. Что дальше
В этом разделе мы довольно много играли с оболочкой MongoDB и видели большинство команд MongoDB в действии. В следующем разделе мы узнаем, как интегрировать MongoDB в ваши Java-приложения.