Node.js - MongoDB Создание базы данных

Здравствуйте,野心勃勃的程序员们!今天,我们将踏上一段激动人心的旅程,进入Node.js和MongoDB的世界。作为您友好的邻居计算机科学老师,我将引导您使用这些强大的工具创建数据库的过程。如果您是编程新手,不用担心——我们将从基础开始,逐步学习。所以,拿一杯咖啡(或者您最喜欢的饮料),让我们一起开始吧!

Node.js - MongoDB Create Database

Что такое 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();
});
});

Давайте разберем этот код:

  1. Мы начинаем с require драйвера MongoDB для Node.js.
  2. Мы настраиваем наш URL подключения и имя базы данных.
  3. Мы создаем новый MongoClient с некоторыми параметрами для лучшей производительности.
  4. Мы используем метод connect для установления подключения к MongoDB.
  5. Если подключение успешное, мы получаем admin базу данных.
  6. Мы используем метод listDatabases для получения списка всех баз данных.
  7. Мы выводим имена всех баз данных.
  8. Наконец, мы закрываем подключение.

Когда вы запустите этот код, вы увидите список всех баз данных в вашей инстансе 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();
});
});
});

Давайте разберем, что происходит здесь:

  1. Мы подключаемся к MongoDB, как и раньше.
  2. Мы используем client.db(dbName) для получения нашей новой базы данных. Если она не существует, MongoDB создаст ее для нас.
  3. Мы создаем новую коллекцию под названием "students" с помощью db.createCollection().
  4. Мы вставляем документ в нашу новую коллекцию с помощью insertOne().
  5. Наконец, мы закрываем подключение.

Когда вы запустите этот код, 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