Вступление
MongoDB - это база данных документов с открытым исходным кодом и ведущая база данных NoSQL. Из следующей статьи вы узнаете, как подключиться к серверу MongoDB из оболочки Mongo, как писать команды оболочки Mongo и выполнять команды оболочки с помощью файла JavaScript.
Сначала вам нужно установить Mongo db и Mongo Shell. Оболочка Mongo включена в установку сервера MongoDB.
Mongo Shell
Оболочка mongo - это интерактивный интерфейс JavaScript для MongoDB. Это интерфейс командной строки (CLI), где все ввод и вывод основаны на консоли, мы можем использовать оболочку mongo для запроса, создания и обновления данных, а также для выполнения административных операций.
Обычно оболочка mongo включается в установку сервера MongoDB. Или, если вы хотите загрузить оболочку Mongo отдельно от сервера MongoDB и установить оболочку как отдельный пакет.
Используйте оболочку mongo
Вы можете использовать оболочку mongo внутри каталога установки оболочки mongo. Если мы установим глобально, вы можете использовать его из любого места в CLI.
Ваш экземпляр mongo работает на locahhost с портом по умолчанию 27017, нам не нужно писать какие-либо другие команды параметров.
$ mongo
Если хост и порт отличаются, вы можете использовать команду формата ниже с дополнительными параметрами.
$ mongo -u <USER> -p <PASSWORD> <HOST>:<PORT>
Кроме того, мы хотим подключить конкретную базу данных, которую мы можем использовать в формате ниже.
$ mongo -u <USER> -p <PASSWORD> <HOST>:<PORT>/<DB>
Если оболочка Mongo успешно подключена, вы можете взаимодействовать с интерфейсом оболочки mongo.
Выполнено! А теперь пора писать команды mongo.
Написание команд оболочки mongo.
После подключения оболочки вы можете писать команды оболочки. Для получения справки просто введите команду «справка».
> help
Чтобы получить полный список команд, которые можно выполнить в текущей базе данных, введите
>db.help()
Ok. Теперь мы увидим здесь некоторые основные команды и результаты.
Показать все базы данных
> show dbs admin 0.000GB config 0.000GB my_database 0.000GB
Переключиться на использование конкретной базы данных
>use my_database switched to db my_database
Показать коллекции в базе данных my_database
> show collections person
Найдите данные коллекции "человек"
> db.person.findOne() { “_id” : ObjectId(“5ff5cb25df0696fc2bb8c643”), “name” : “John” }
Как и выше, вы можете выполнять команды оболочки mongo.
Написание скриптов для оболочки mongo
Вы можете писать сценарии для оболочки mongo на JavaScript, которые управляют данными в MongoDB или выполняют административные операции. Вы не можете использовать какие-либо помощники оболочки (например, использовать ‹dbname›, show dbs и т. Д.) Внутри файла JavaScript, потому что они не являются допустимым JavaScript. Нам нужно использовать эквивалентные скрипты. Более подробную информацию об эквивалентных скриптах можно найти на этом официальном сайте.
Напишите простые скрипты
Используйте параметр--evel
для mongo, чтобы передать оболочке фрагмент JavaScript, как показано ниже: просто напечатайте простую строку, print
используется для печати в формате, отличном от json (строки, числа), printjson
используется для печати JSON.
$ mongo --eval ‘print(“hello mongo user”)’ MongoDB shell version v4.2.8 connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb Implicit session: session { “id” : UUID(“0d739144-d209–4976–8b83–4c0e173e4053”) } MongoDB server version: 4.2.8 hello mongo user
hello mongo user
- это напечатанный ответ. Теперь посмотрим на пример printjson
. Здесь вы подключаете базу данных и получаете запись в базе данных. Вы можете выполнять команды оболочки mongo со сценариями и получать результаты, как показано ниже
$ mongo my_database — eval ‘printjson(db.person.findOne())’ MongoDB shell version v4.2.8 connecting to: mongodb://127.0.0.1:27017/my_database?compressors=disabled&gssapiServiceName=mongodb Implicit session: session { “id” : UUID(“f75074be-d88e-4a75–84b2-e48a5a9100a5”) } MongoDB server version: 4.2.8 { “_id” : ObjectId(“5ff5cb25df0696fc2bb8c643”), “name” : “John” }
Напишите сценарии в файле JavaScript и выполните.
Вы можете указать файл .js для оболочки mongo, и mongo выполнит самый простой способ, который я нашел для выполнения запросов mongo db из файла. Теперь посмотрим на пример.
Создайте файл с именем query1.js, напишите несколько скриптов.
//query1.js printjson(db.person.findOne())
Теперь выполните файл query1.js, как показано ниже. Здесь my_database
- имя базы данных.
$ mongo my_database query.js MongoDB shell version v4.2.8 connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb Implicit session: session { “id” : UUID(“345560a8–88b5–4ea0–94f5–78024cb2d2c8”) } MongoDB server version: 4.2.8 switched to db my_database { “_id” : ObjectId(“5ff5cb25df0696fc2bb8c643”), “name” : “John” } bye
База данных вышеупомянутого примера упоминается в команде. Но мы можем переместить его в файл сценария. и использовать его без упоминания в командной строке. Вы можете увидеть пример ниже.
//query2.js conn = new Mongo(); db = conn.getDB("my_database"); printjson(db.person.findOne())
В файле query2.js создается сценарий базы данных внутри файла .js. Здесь db = conn.getDB("my_database");
- это соединение с базой данных, в качестве альтернативы мы также можем использовать use my_databse
code. Итак, мы можем выполнить это так.
$ mongo <query.js MongoDB shell version v4.2.8 connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb Implicit session: session { “id” : UUID(“345560a8–88b5–4ea0–94f5–78024cb2d2c8”) } MongoDB server version: 4.2.8 switched to db my_database { “_id” : ObjectId(“5ff5cb25df0696fc2bb8c643”), “name” : “John” } bye
Я надеюсь, что перемещение базы данных в файл сценария - лучший способ писать запросы к конкретной базе данных.
Загрузить файл JavaScript
Теперь мы увидим, как выполнить .js
файл из оболочки mongo, используя функцию load()
. load()
функция позволяет выполнять как по абсолютным, так и по относительным путям. Мы можем просто загрузить файл в оболочку mongo с помощью load()
function.
> load(“query2.js”) { “_id” : ObjectId(“5ff5cb25df0696fc2bb8c643”), “name” : “John” } true
И, наконец, если у нас много файлов со сценариями, мы можем load()
использовать другой файл javaScript. Таким образом мы можем подключить файлы JavaScript. См. Этот пример для подключения файлов javascript.
//main.js conn = new Mongo(); db = conn.getDB(“my_database”); db.person.update({“_id”: ObjectId(“5ff5cb25df0696fc2bb8c643”)},{$set:{name:”David”}}) load(“query.js”); //query.js cursor = db.person.find({_id: ObjectId(“5ff5cb25df0696fc2bb8c643”)}); while ( cursor.hasNext() ) { printjson( cursor.next() ); }
Не беспокойтесь о cursor
. Он используется для печати всех элементов результата. Теперь загрузите main.js и посмотрите результат.
$ mongo < main_query.js MongoDB shell version v4.2.8 connecting to: mongodb://127.0.0.1:27017/ compressors=disabled&gssapiServiceName=mongodb Implicit session: session { “id” : UUID(“3dec9f74-a909–4c15-b812–956f47c6b5a2”) } MongoDB server version: 4.2.8 connection to 127.0.0.1:27017 my_database WriteResult({ “nMatched” : 1, “nUpserted” : 0, “nModified” : 1 }) { “_id” : ObjectId(“5ff5cb25df0696fc2bb8c643”), “name” : “David” } true bye
Таким образом вы можете загрузить файлы javascript и выполнить запрос.
Это все. Удачного кодирования !!!