Вступление

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 и выполнить запрос.

Это все. Удачного кодирования !!!