MongoDB — широко используемая база данных NoSQL. Возможность хранить данные в нескольких форматах делает MongoDB полезным инструментом для управления большими объемами данных. С другой стороны, Nodejs — это хорошо известная среда выполнения, которая помогает выполнять код JavaScript вне браузера.
Итак, первый инструмент (MongoDB) произвел революцию в управлении данными, тогда как Nodejs известен разработкой масштабируемых приложений. Учитывая важность этих плодотворных инструментов, в этом руководстве будет продемонстрировано использование Nodejs с MongoDB.
- MongoDB и Nodejs
- Настройка среды
- Установление связи между MongoDB и Nodejs
- Создание базы данных и коллекции с использованием Nodejs и MongoDB
- Вставка документов с помощью Nodejs и MongoDB
- Поиск документов в Nodejs и MongoDB
- Обновление документов в Nodejs и MongoDB
- Удаление документов в Nodejs и MongoDB
- Заключение
MongoDB и Nodejs
Хотя среда Nodejs работает с несколькими базами данных SQL и NoSQL. Здесь мы будем нацеливаться только на MongoDB. Nodejs помогает вам, выполняя несколько операций в MongoDB, перечисленных ниже:
- Количество подключений к базе данных MongoDB под управлением Nodejs.
- Управление подключениями к базе данных; создание соединения с базой данных, завершение соединения.
- Операции CRUD, поддерживаемые MongoDB, можно выполнять, используя его с Nodejs.
С помощью этого раздела вы сможете настроить среду, в которой вы можете использовать MongoDB с Nodejs. Следующий список пакетов должен присутствовать в вашей системе Linux, чтобы начать работу с Nodejs вместе с MongoDB.
Установите Node.js: необходимо установить Node.js версии » 4.x » или выше. Однако рекомендуется получить последнюю доступную версию.
Во-первых, обновите список пакетов, введя следующую команду:
$ sudo apt update
После обновления загрузите Node.js в Ubuntu с помощью указанной ниже команды:
$ sudo apt install nodejs
Примечание: мы уже установили nodejs.
Отметьте также версию своего узла, выполнив следующую команду:
$ nodejs -v
Получите диспетчер пакетов Node.js : поддержка npm в Node.js позволяет установить несколько модулей или пакетов, которые будут использоваться с Node.js. Итак, выполните следующую команду, чтобы установить npm на вашем Ubuntu:
$ sudo apt install npm
MongoDB Atlas: после установки вышеуказанных экземпляров вам необходимо перейти в MongoDB Atlas и создать там учетную запись. После успешного создания учетной записи вам будет предложено назвать ваш проект и создать кластер внутри этого проекта. После этого вы увидите интерфейс, как показано ниже:
Вы также можете увидеть название проекта и кластер этого проекта:
Примечание. В нашем случае имя проекта установлено на linuxhint, а кластер, связанный с этим проектом, называется linuxhint-C1.
Кроме того, для подключения необходимо выполнить следующие действия:
Шаг 1: Нажмите кнопку » Подключиться «, чтобы настроить соединение:
Шаг 2: На следующей странице нажмите » Добавить текущий IP-адрес «, чтобы установить текущий IP-адрес для подключения.
Теперь нажмите » Добавить IP-адрес «, чтобы завершить этот шаг.
Шаг 3: После установки IP-адреса перейдите к опции » Создать пользователя базы данных «. Введите имя пользователя в поле » Имя пользователя » и пароль в поле » Пароль «, а затем нажмите » Создать пользователя базы данных «, чтобы завершить этот шаг.
Теперь выберите способ подключения, нажав » Выбрать метод подключения «:
Шаг 4: Nex нажмите » Подключить ваше приложение «.
Нам нужны nodejs с MongoDB, для этого выберите » Node.js » в раскрывающемся меню с именем » ДРАЙВЕР » и выберите соответствующую версию в опции » ВЕРСИЯ «. Более того, вы должны скопировать URL-адрес подключения, чтобы использовать его в приложении Nodejs (или вы также можете скопировать его позже).
После того, как вы выполнили все эти шаги, вы настроили подключение приложения nodejs к MongoDB.
Настройка среды
В этом разделе кратко описываются операции MongoDB с использованием Nodejs. Для этого вы должны создать проект узла, чтобы можно было установить его соединение с MongoDB.
Приведенные ниже шаги помогут вам создать новый проект узла и установить модуль MongoDB.
Шаг 1: Откройте терминал Ubuntu. Создайте новый каталог и измените текущий рабочий каталог на эту папку. Например, мы создали каталог » node-mongo » и переместили PWD на » node-mongo «, выполнив следующие команды:
$ mkdir node-mongo
$ cd node-mongo
Шаг 2: Как только вы попадете в каталог » node-mongo «; создайте проект Node, используя следующую команду:
$ npm init
Шаг 3: После этого выполните следующую команду, чтобы установить модуль MongoDB, необходимый для выполнения запросов MongoDB (мы уже установили этот драйвер) :
$ npm install MongoDB
Примечание. Для добавления драйвера mongodb рекомендуется иметь версию узла выше v14.
Установление связи между MongoDB и Nodejs
После настройки среды у вас все готово для подключения Nodejs к MongoDB. Кроме того, здесь используется редактор кода » Visual Studio Code «.
Вы должны выполнить следующие шаги, чтобы установить соединение:
Шаг 1: Откройте папку в приложении » Visual Studio Code «. Замечено, что два файла уже существуют, один называется » package.json » и » package-lock.json «. Эти файлы создаются при инициализации npm и установке драйвера mongodb. Вы можете создать эти файлы, выполнив шаги 2 и 3 раздела » Как настроить среду «.
Создайте новый файл „.js “ в » node-mongo » и назовите его » index.js «.
После этого откройте файл » package.json » и внесите следующие изменения, чтобы сделать файл » index.js » исполняемым.
Как только вы закончите, сохраните изменения ( Ctrl + S ).
Шаг 2: Откройте файл index.js. После этого используйте следующий код, чтобы попытаться установить соединение. URL-адрес подключения должен быть скопирован из Атласа MongoDB.
Для URL-адреса подключения необходимо перейти к » Шагу 4 ″ подраздела » — Атлас MongoDB » в разделе » Предварительные требования «. Для удобства изображение прикреплено ниже:
Шаг 3: Теперь откройте свой терминал (или вы также можете использовать терминал внутри » Visual Studio Code «) и выполните следующую команду, чтобы проверить соединение:
На изображении ниже показано, что соединение установлено успешно, поскольку команда возвращает сообщение » соединение успешно «.
$ npm start index.js
Создание базы данных и коллекции с использованием Nodejs и MongoDB
После того, как вы успешно установили соединение. Теперь вы можете выполнять различные операции MongoDB с помощью Nodejs. Здесь мы выполнили несколько шагов для создания базы данных и коллекции.
Шаг 1 (необязательно): Перед созданием базы данных давайте взглянем на список баз данных, используя следующую команду в оболочке Mongo.
> SHOW dbs
Можно заметить, что существует всего 3 базы данных.
Шаг 2: Мы создали новый файл.js и назвали его » database.js «. Вставьте следующий код в файл » database.js «. Код создаст базу данных с именем » linuxhint » и коллекцию с именем » staff «.
//import mongodb driver
var MongoClient = require(‘mongodb’).MongoClient;
//linuxhint_mongodb IS the name OF DATABASE we are creating here!!
var url = «mongodb://localhost:27017/linuxhint»;
//make client CONNECT!!
MongoClient.connect(url, FUNCTION (err, client) {
var db = client.db(‘linuxhint’);
IF (err) throw err;
//a collection named «staff» will be created!!
db.createCollection(«staff», FUNCTION (err, RESULT) {
IF (err) throw err;
console.log(«Successfully created the database and collection»);
client.close();
});
});
Откройте свой терминал и протестируйте код, выполнив файл » database.js » в своем терминале:
$ node database.js
Шаг 3 (необязательно, но рекомендуется): Хотя файл был успешно выполнен, рекомендуется проверить наличие вновь созданной базы данных и коллекции. Для этого выполните следующие команды:
> SHOW dbs
> USE linuxhint
> SHOW collections
Вставка документов с помощью Nodejs и MongoDB
В MongoDB есть две возможности для вставки документов:
Вставить один документ: для вставки одного документа используется метод insertOne () MongoDB. Для этого внутри каталога » node-mongo » создается новый файл » insertone.js «. Следующий код будет добавить только один документ на » сотрудник » коллекцию » linuxhint базы данных«.
var MongoClient = require(‘mongodb’).MongoClient;
var url = «mongodb://localhost:27017/»;MongoClient.connect(url, FUNCTION(err, db) {
IF (err) throw err;
var dbo = db.db(«linuxhint»);
var myobj = { name: «Alen», designation: «Author» };
dbo.collection(«employees»).insertOne(myobj, FUNCTION(err, res) {
IF (err) throw err;
console.log(«you have inserted one document»);
db.close();
});
});
Теперь откройте свой терминал и выполните указанную ниже команду:
$ node insertone.js
Вставка нескольких документов: для вставки нескольких документов мы создали новый файл.js и назвали его » insert.js «. Следующий код поможет вам вставить несколько документов в » сотрудников » коллекции » linuxhint базы данных«.
var MongoClient = require(‘mongodb’).MongoClient;
var url = «mongodb://localhost:27017/»;MongoClient.connect(url, FUNCTION(err, db) {
IF (err) throw err;
var dbo = db.db(«linuxhint»);
// created a NEW obj TO INSERT documents
var insertobj = [
{ name: ‘Sam’, designation: ‘Team-Lead’},
{ name: ‘John’, designation: ‘Author’},
{ name: ‘Kane’, designation: ‘Instructor’},
{ name: ‘Miln’, designation: ‘Video Editor’}
];
// AS there are multiple documents, so insertMany() IS used here
dbo.collection(«staff»).insertMany(insertobj, FUNCTION(err, res) {
IF (err) throw err;
console.log(«You have inserted « + res.insertedCount + » documents successfully!!»);
db.close();
});
});
Используйте указанную ниже команду для запуска файла » insert.js «:
$ node insert.js
Поиск документов в Nodejs и MongoDB
В MongoDB метод find () используется для извлечения документов из любой коллекции базы данных. Мы создали » find.js файл», который содержит код для извлечения документов из » сотрудников » коллекции » linuxhint базы данных«. Код для метода find () приведен ниже:
var MongoClient = require(‘mongodb’).MongoClient;
var url = «mongodb://localhost:27017/»;MongoClient.connect(url, FUNCTION(err, db) {
IF (err) throw err;
var dbo = db.db(«linuxhint»);
dbo.collection(«staff»).find({}).toArray(FUNCTION(err, RESULT) {
IF (err) throw err;
console.log(RESULT);
db.close();
});
});
Выполните следующую команду, чтобы запустить файл » find.js «, и выход будет показывать документы » персонал » коллекция:
$ node find.js
Обновление документов в Nodejs и MongoDB
Управление данными в любой организации считается достаточно хорошим, если они постоянно обновляют свои данные. MongoDB предоставляет несколько методов для обновления документов, таких как updateOne (), updateMany ().
Обновите один документ: для этого мы создали новый файл и назвали его » updateone.js «. Поскольку может существовать несколько документов, у которых значение » обозначение» равно «Автор», но updateOne () обновит первый документ, соответствующий условию. Эта операция выполняется с помощью следующего кода:
var MongoClient = require(‘mongodb’).MongoClient;
var url = «mongodb://127.0.0.1:27017/»;MongoClient.connect(url, FUNCTION(err, db) {
IF (err) throw err;
var dbo = db.db(«linuxhint»);
var cond = { designation: «Author» };
var ch_val = { $set: {designation: «Internee», STATUS: «new hiring»}};
dbo.collection(«staff»).updateOne(cond, ch_val, FUNCTION(err, res) {
IF (err) throw err;
console.log(«Successfull!! The status is updated!!»);
db.close();
});
});
Вы можете запустить файл updateone.js, используя следующую команду в терминале:
$ node updateone.js
Обновление нескольких документов: для обновления нескольких документов MongoDB предоставляет поддержку метода updateMany (). Мы также будем использовать этот метод в этом разделе.
Создается новый файл ( update.js ), который находится в каталоге » node-mongo «. Мы обновляем только те документы, в которых в поле обозначения указано значение » Team-Lead «, и следующий код поможет нам в этом отношении:
Примечание: Эта операция применяется на » персонал » сбор базы данных » linuxhint «.
var MongoClient = require(‘mongodb’).MongoClient;
var url = «mongodb://127.0.0.1:27017/»;MongoClient.connect(url, FUNCTION(err, db) {
IF (err) throw err;
var dbo = db.db(«linuxhint»);
var cond = { designation: «Team-Lead»};
var ch_val = {$set: {STATUS: «promoted», new_designation: «Manager» } };
dbo.collection(«staff»).updateMany(cond, ch_val, FUNCTION(err, res) {
IF (err) throw err;
console.log(res.result.nModified + » documents have been updated!!»);
db.close();
});
});
Удаление документов в Nodejs и MongoDB
Подобно методам вставки и обновления, вы можете удалить как один, так и несколько документов. Итак, у нас есть две возможности:
Удалить один документ: чтобы удалить один документ, вы должны использовать метод deleteOne () MongoDB. Для этого создается новый файл » deleteone.js «, содержащий код. Приведенный ниже код удалит документ, для которого значение » name » равно » Miln «:
var MongoClient = require(‘mongodb’).MongoClient;
var url = «mongodb://localhost:27017/»;MongoClient.connect(url, FUNCTION(err, db) {
IF (err) throw err;
var dbo = db.db(«linuxhint»);
var cond = { name: ‘Miln’ };
dbo.collection(«staff»).deleteOne(cond, FUNCTION(err, obj) {
IF (err) throw err;
console.log(«one document deleted!!»);
db.close();
});
});
$ node deleteone.js
Удаление нескольких документов: MongoDB поддерживает одновременное удаление нескольких документов, и для этого можно использовать метод deleteMany (). Мы создали новый файл » delete.js «, и этот файл помещается в каталог » node-mongo «. Код, который удалит несколько документов после успешного выполнения команды. Команда ищет документы, в которых поле » обозначение» равно » Автор «.
Примечание. Имя базы данных, используемое в этом примере, — » linuxhint «, а коллекция, используемая здесь, — » сотрудники «.
var MongoClient = require(‘mongodb’).MongoClient;
var url = «mongodb://localhost:27017/»;MongoClient.connect(url, FUNCTION(err, db) {
IF (err) throw err;
var dbo = db.db(«linuxhint»);
var myquery = { designation: «Author»};
dbo.collection(«employees»).deleteMany(myquery, FUNCTION(err, obj) {
IF (err) throw err;
console.log( «The deletion is successful»);
db.close();
});
});
Чтобы запустить файл » delete.js «, выполните в терминале Ubuntu следующую команду:
$ node delete.js
Заключение
Nodejs — это хорошо известная среда выполнения, которая в основном используется для программирования на стороне сервера. В то время как MongoDB — это хорошо известная база данных NoSQL, которая хранит и управляет хранимыми данными. В этой статье мы представили учебник по Nodejs и MongoDB. Следуя этому руководству, вы научились подключать сервер MongoDB к среде Nodejs и некоторым базовым операциям MongoDB. После успешного установления соединения вы можете выполнять все операции, связанные с MongoDB, как мы продемонстрировали способы вставки, обновления, удаления и поиска документов в среде Nodejs MongoDB. Это руководство также поможет нескольким программистам, которые работают над Nodejs и MongoDB.