В этом руководстве я покажу вам, как взаимодействовать с базой данных MongoDB из Node.js.
Если вы не знакомы сMongoDBознакомьтесь с нашим руководством по его основам, а также о том, как его установить и использовать :)
Мы будем использовать официальнуюmongodb
npmупаковка. Если у вас уже есть проект Node.js, над которым вы работаете, установите его с помощью
npm install mongodb
Если вы начинаете с нуля, создайте новую папку со своимТерминали бегиnpm init -y
чтобы запустить новый проект Node.js, а затем запуститеnpm install mongodb
команда.
Подключение к MongoDB
Вам требуетсяmongodb
package, и вы получите из него объект MongoClient.
const mongo = require('mongodb').MongoClient
Создайте URL-адрес сервера MongoDB. Если вы используете MongoDB локально, URL-адрес будет примерно таким:mongodb://localhost:27017
, в качестве27017
порт по умолчанию.
const url = 'mongodb://localhost:27017'
Затем используйтеmongo.connect()
для получения ссылки на клиент экземпляра MongoDB:
mongo.connect(url, {
useNewUrlParser: true,
useUnifiedTopology: true
}, (err, client) => {
if (err) {
console.error(err)
return
}
//...
})
Теперь вы можете выбрать базу данных с помощьюclient.db()
метод:
const db = client.db('kennel')
Создать и получить коллекцию
Вы можете получить коллекцию, используяdb.collection()
метод. Если коллекции еще нет, она создается.
const collection = db.collection('dogs')
Вставить данные в коллекцию Документ
Добавьте в app.js следующую функцию, которая используетinsertOne()
метод добавления объектаdogs
коллекция.
collection.insertOne({name: 'Roger'}, (err, result) => {
})
Вы можете добавить несколько элементов, используяinsertMany()
, передавая массив в качестве первого параметра:
collection.insertMany([{name: 'Togo'}, {name: 'Syd'}], (err, result) => {
})
Найти все документы
Использоватьfind()
в коллекции, чтобы получить все документы, добавленные в коллекцию:
collection.find().toArray((err, items) => {
console.log(items)
})
Найдите конкретный документ
Передать объект вfind()
метод фильтрации коллекции на основе того, что вам нужно получить:
collection.find({name: 'Togo'}).toArray((err, items) => {
console.log(items)
})
Если вы знаете, что получите один элемент, можете пропуститьtoArray()
преобразование курсора путем вызоваfindOne()
:
collection.findOne({name: 'Togo'}, (err, item) => {
console.log(item)
})
Обновить существующий документ
ИспользоватьupdateOne()
способ обновления документа:
collection.updateOne({name: 'Togo'}, {'$set': {'name': 'Togo2'}}, (err, item) => {
console.log(item)
})
Удалить документ
ИспользоватьdeleteOne()
способ удаления документа:
collection.deleteOne({name: 'Togo'}, (err, item) => {
console.log(item)
})
Закрытие соединения
Как только вы закончите с операциями, вы можете вызватьclose()
на клиентском объекте:
client.close()
Используйте обещания или async / await
Я разместил все эти примеры, используяПерезвонитесинтаксис. Этот API поддерживаетобещания(иасинхронный / ожидание) также.
Например это
collection.findOne({name: 'Togo'}, (err, item) => {
console.log(item)
})
Может использоваться с обещаниями:
collection.findOne({name: 'Togo'})
.then(item => {
console.log(item)
})
.catch(err => {
console.error(err)
})
или async / await:
const find = async () => {
try {
const item = await collection.findOne({name: 'Togo'})
} catch(err => {
console.error(err)
})
}
find()
Скачать мою бесплатнуюСправочник по Node.js
Дополнительные руководства по узлам:
- Введение в менеджер пакетов npm
- Введение в Node.js
- HTTP-запросы с использованием Axios
- Где разместить приложение Node.js
- Взаимодействовать с Google Analytics API с помощью Node.js
- Средство выполнения пакетов npx Node
- Руководство по package.json
- Где npm устанавливает пакеты?
- Как обновить Node.js
- Как использовать или выполнить пакет, установленный с помощью npm
- Файл package-lock.json
- Семантическое управление версиями с использованием npm
- Следует ли зафиксировать папку node_modules в Git?
- Обновите все зависимости Node до последней версии
- Разбор JSON с помощью Node.js
- Найдите установленную версию пакета npm
- Node.js потоки
- Установите старую версию пакета npm
- Получить текущую папку в Node
- Как зарегистрировать объект в Node
- Предоставление функциональности из файла узла с помощью экспорта
- Различия между узлом и браузером
- Сделайте HTTP-запрос POST с помощью Node
- Получить данные тела HTTP-запроса с помощью Node
- Буферы узлов
- Краткая история Node.js
- Как установить Node.js
- Сколько JavaScript вам нужно знать, чтобы использовать Node?
- Как использовать Node.js REPL
- Узел, принимать аргументы из командной строки
- Вывод в командную строку с помощью Node
- Принять ввод из командной строки в Node
- Удаление пакетов npm с помощью `npm uninstall`
- npm глобальные или локальные пакеты
- зависимости npm и devDependencies
- Цикл событий Node.js
- Понимание process.nextTick ()
- Понимание setImmediate ()
- Эмиттер событий узла
- Создайте HTTP-сервер
- Выполнение HTTP-запросов с помощью Node
- Модуль Node fs
- HTTP-запросы в Node с использованием Axios
- Чтение файлов с помощью Node
- Пути к файлам узлов
- Написание файлов с помощью Node
- Статистика файла узла
- Работа с файловыми дескрипторами в Node
- Работа с папками в Node
- Модуль пути к узлу
- Модуль Node http
- Использование WebSockets с Node.js
- Основы работы с MySQL и Node
- Обработка ошибок в Node.js
- Путеводитель по мопсу
- Как читать переменные среды из Node.js
- Как выйти из программы Node.js
- Модуль Node os
- Модуль событий узла
- Узел, разница между разработкой и производством
- Как проверить, существует ли файл в Node.js
- Как создать пустой файл в Node.js
- Как удалить файл с помощью Node.js
- Как получить дату последнего обновления файла с помощью Node.js
- Как определить, сегодня ли дата в JavaScript
- Как записать объект JSON в файл в Node.js
- Почему вам следует использовать Node.js в вашем следующем проекте?
- Запускайте веб-сервер из любой папки
- Как использовать MongoDB с Node.js
- Используйте Chrome DevTools для отладки приложения Node.js
- Что такое pnpm?
- Список параметров среды выполнения Node.js v8
- Как исправить ошибку «Отсутствует доступ для записи» при использовании npm
- Как включить модули ES в Node.js
- Как создать дочерний процесс с помощью Node.js
- Как получить в Express и разобранное, и необработанное тело
- Как обрабатывать загрузку файлов в Node.js
- Каковы одноранговые зависимости в модуле Node?
- Как написать файл CSV с помощью Node.js
- Как читать CSV-файл с помощью Node.js
- Модули ядра узла
- Увеличение номеров сразу нескольких папок с помощью Node.js
- Как распечатать холст по URL-адресу данных
- Как создать и сохранить изображение с помощью Node.js и Canvas
- Как скачать изображение с помощью Node.js
- Как массово переименовывать файлы в Node.js
- Как получить имена всех файлов в папке в Node
- Как использовать обещания и ожидания с функциями обратного вызова Node.js
- Как протестировать пакет npm локально
- Как проверить текущую версию Node.js во время выполнения
- Как использовать Sequelize для взаимодействия с PostgreSQL
- Обслуживайте HTML-страницу с помощью Node.js
- Как устранить ошибку `util.pump is not a function` в Node.js