Node.js - MongoDB Создание базы данных
Здравствуйте,野心勃勃的程序员们!今天,我们将踏上一段激动人心的旅程,进入Node.js和MongoDB的世界。作为您友好的邻居计算机科学老师,我将引导您使用这些强大的工具创建数据库的过程。如果您是编程新手,不用担心——我们将从基础开始,逐步学习。所以,拿一杯咖啡(或者您最喜欢的饮料),让我们一起开始吧!
Что такое MongoDB?
Прежде чем мы начнем создавать базы данных, давайте на минутку разберемся, что такое MongoDB. Представьте, что у вас есть огромный цифровой файловый шкаф, в котором вы можете хранить любую информацию. По сути, это и есть MongoDB — база данных, которая хранит данные в гибком формате,类似JSON, под названием BSON (Бинарный JSON). Это как having a super-organized assistant who can quickly find and retrieve any piece of information you need.
Строки подключения: Ваш путь к MongoDB
Теперь, когда мы знаем, что такое MongoDB, давайте поговорим о том, как к нему подключиться. Представьте себе, что строка подключения — это тайный握手 между вашей Node.js приложением и MongoDB. Она содержит всю информацию, необходимую для установления соединения, такую как адрес сервера MongoDB, номер порта и любую аутентификационную информацию.
Вот что выглядит типичная строка подключения к MongoDB:
mongodb://username:password@hostname:port/database
Давайте разберем это:
-
mongodb://
: Это протокол, который сообщает вашему приложению, что оно подключается к базе данных MongoDB. -
username:password
: Ваши учетные данные для входа (если необходимо). -
hostname
: Адрес сервера MongoDB (например, localhost для вашего компьютера). -
port
: Номер порта, на котором слушает MongoDB (по умолчанию 27017). -
database
: Имя базы данных, к которой вы хотите подключиться.
Пример: Список баз данных
Теперь давайте脏手写一些代码! Мы начнем с подключения к MongoDB и listings всех баз данных. Это отличной способ проверить, работает ли наше подключение, и увидеть, какие базы данных уже существуют.
const MongoClient = require('mongodb').MongoClient;
// URL подключения
const url = 'mongodb://localhost:27017';
// Имя базы данных
const dbName = 'myproject';
// Создаем новый MongoClient
const client = new MongoClient(url, { useNewUrlParser: true, useUnifiedTopology: true });
// Подключаемся к серверу
client.connect(function(err) {
if (err) {
console.error('Не удалось подключиться к MongoDB:', err);
return;
}
console.log("Успешно подключено к серверу");
// Получаем admin базу данных
const adminDb = client.db(dbName).admin();
// Список всех доступных баз данных
adminDb.listDatabases(function(err, dbs) {
if (err) {
console.error('Не удалось列出 databases:', err);
return;
}
console.log("Базы данных:");
dbs.databases.forEach(function(db) {
console.log(" - " + db.name);
});
client.close();
});
});
Давайте разберем этот код:
- Мы начинаем с require драйвера MongoDB для Node.js.
- Мы настраиваем наш URL подключения и имя базы данных.
- Мы создаем новый MongoClient с некоторыми параметрами для лучшей производительности.
- Мы используем метод
connect
для установления подключения к MongoDB. - Если подключение успешное, мы получаем admin базу данных.
- Мы используем метод
listDatabases
для получения списка всех баз данных. - Мы выводим имена всех баз данных.
- Наконец, мы закрываем подключение.
Когда вы запустите этот код, вы увидите список всех баз данных в вашей инстансе MongoDB. Это как спросить ваш цифровой файловый шкаф: "Эй, какие у тебя папки есть?"
Создание новой базы данных
Теперь для интересной части — создание нашей собственной базы данных! В MongoDB базы данных и коллекции создаются автоматически, когда вы впервые храните в них данные. Это как магия — вам не нужно явно создавать их beforehand.
Давайте создадим новую базу данных под названием "myNewDB" и добавим коллекцию под названием "students":
const MongoClient = require('mongodb').MongoClient;
// URL подключения
const url = 'mongodb://localhost:27017';
// Имя базы данных
const dbName = 'myNewDB';
// Создаем новый MongoClient
const client = new MongoClient(url, { useNewUrlParser: true, useUnifiedTopology: true });
// Подключаемся к серверу
client.connect(function(err) {
if (err) {
console.error('Не удалось подключиться к MongoDB:', err);
return;
}
console.log("Успешно подключено к серверу");
// Получаем базу данных
const db = client.db(dbName);
// Создаем новую коллекцию
db.createCollection("students", function(err, res) {
if (err) {
console.error('Не удалось создать коллекцию:', err);
return;
}
console.log("Коллекция создана!");
// Вставляем документ
db.collection('students').insertOne({
name: "John Doe",
age: 20,
grade: "A"
}, function(err, res) {
if (err) {
console.error('Не удалось вставить документ:', err);
return;
}
console.log("Документ вставлен");
// Закрываем подключение
client.close();
});
});
});
Давайте разберем, что происходит здесь:
- Мы подключаемся к MongoDB, как и раньше.
- Мы используем
client.db(dbName)
для получения нашей новой базы данных. Если она не существует, MongoDB создаст ее для нас. - Мы создаем новую коллекцию под названием "students" с помощью
db.createCollection()
. - Мы вставляем документ в нашу новую коллекцию с помощью
insertOne()
. - Наконец, мы закрываем подключение.
Когда вы запустите этот код, MongoDB создаст базу данных "myNewDB" и коллекцию "students", и вставит документ с информацией о John Doe. Это как создать новый файловый шкаф, добавить папку "students" и положить файл John в нее.
Заключение
Поздравляю! Вы только что научились подключаться к MongoDB, перечислять существующие базы данных и создавать новую базу данных с коллекцией. Вы на правильном пути к тому, чтобы стать магом баз данных!
помните, что практика делает perfect. Попробуйте создать разные базы данных, коллекции и вставлять различные типы документов. Экспериментируйте с запросами к inserted данным. Чем больше вы играете с MongoDB, тем комфортнее вы станете.
Вот таблица, резюмирующая основные методы, которые мы использовали:
Метод | Описание |
---|---|
MongoClient.connect() |
Устанавливает подключение к MongoDB |
client.db() |
Получает ссылку на базу данных |
adminDb.listDatabases() |
Список всех доступных баз данных |
db.createCollection() |
Создает новую коллекцию |
collection.insertOne() |
Вставляет документ в коллекцию |
Счастливого кодирования, и пусть ваши базы данных всегда будут организованы, а ваши запросы — молниеносно быстры!
Credits: Image by storyset