MongoDB — это кроссплатформенная, ориентированная на документы база данных, которая обеспечивает высокую производительность, высокую доступность и простоту масштабирования. MongoDB работает над концепцией сбора и документа. Для получения дополнительной информации прочитайте наш учебник MongoDB .
В этой главе вы узнаете, как взаимодействовать с базой данных MongoDB с помощью CoffeeScript.
Монтаж
База данных MongoDB может быть интегрирована с CoffeeScript с помощью драйвера Node.js 2.0 от MongoDB. Прежде всего вам необходимо установить MongoDB в вашей системе, обратившись к главе о среде нашего руководства MongoDB.
После установки MongoDB успешно просмотрите его папку bin (если вы не указали путь) и запустите службу MongoDB, как показано ниже.
C:\Program Files\MongoDB\Server\3.2\bin> mongod
Наконец, установите драйвер MongoDB и его зависимости, выполнив следующую команду NPM в командной строке.
npm install mongodb --save
Подключение к MongoDB
Чтобы подключиться к MongoDB, сначала создайте MongoClient с помощью этого, вызовите функцию connect () . Эта функция принимает URL и функцию обратного вызова в качестве параметров.
Следующий код CoffeeScript показывает, как подключиться к серверу MongoDB. Если в вашей системе запущен сервер MongoDB, эта программа устанавливает соединение с сервером.
#Requiring the Mongodb package mongo = require 'mongodb' #Creating a MongoClient object MongoClient = mongo.MongoClient #Preparing the URL url = 'mongodb://localhost:27017/testdb' #Connecting to the server MongoClient.connect url, (err, db) -> if err console.log 'Unable to connect . Error:', err else console.log 'Connection established to', url #Close connection db.close() return
Сохраните приведенный выше код в файле с именем connect_db.coffee и выполните его, как показано ниже. Если база данных успешно создана, она выдаст следующее сообщение
c:\> coffee connect_db.coffee coffee connect_db.collection Connection established to mongodb://localhost:27017/testdb
Создание коллекции
Коллекция в MongoDB содержит документы, которые мы храним в ней. Вы можете создать коллекцию с помощью функции collection () . Эта функция принимает строковый аргумент, представляющий имя коллекции, которую мы хотим создать.
Следующий код CoffeeScript показывает, как создать коллекцию в MongoDB. В случае каких-либо ошибок они будут отображаться на консоли.
#Requiring the Mongodb package mongo = require 'mongodb' #Creating a MongoClient object MongoClient = mongo.MongoClient #Preparing the URL url = 'mongodb://localhost:27017/testdb' #Connecting to the server MongoClient.connect url, (err, db) -> if err console.log 'Unable to connect . Error:', err else console.log 'Connection established to', url #Create collection col = db.collection('My_collection') console.log "Collection created successfully." #Close connection db.close() return
Сохраните приведенный выше код в файле с именем create_collection.coffee и выполните его, как показано ниже. Если коллекция создана успешно, она выдаст следующее сообщение
c:/> coffee create_collection.coffee Connection established to mongodb://localhost:27017/testdb Collection created successfully.
Вставка документов
Вы можете вставлять документы в коллекцию в MongoDB, вам нужно вызвать функцию с именем insert () , передав список документов, которые необходимо вставить, в качестве параметров.
Следующий код CoffeeScript показывает, как вставить документы в коллекцию с именем My_collection . В случае каких-либо ошибок они будут отображаться на консоли.
#Sample JSON Documents doc1 = {name: 'Ram', age: 26, city: 'Hyderabad'} doc2 = {name: 'Rahim', age: 27, city: 'Banglore'} doc3 = {name: 'Robert', age: 28, city: 'Mumbai'} #Requiring the Mongodb package mongo = require 'mongodb' #Creating a MongoClient object MongoClient = mongo.MongoClient #Preparing the URL url = 'mongodb://localhost:27017/testdb' #Connecting to the server MongoClient.connect url, (err, db) -> if err console.log 'Unable to connect . Error:', err else console.log 'Connection established to', url #Creating collection col = db.collection('My_collection') #Inserting documents col.insert [doc1,doc2,doc3], (err, result) -> if err console.log err else console.log "Documents inserted successfully" #Close connection db.close() return return
Сохраните приведенный выше код в файле с именем insert_documents.coffee и выполните его, как показано ниже. Если документы вставлены успешно, то выдается следующее сообщение
c:/> coffee insert_documents.coffee Connection established to mongodb://localhost:27017/testdb Documents inserted successfully
Чтение документов
Вы можете получить документы, которые хранятся в MongoDB, используя функцию с именем find () . Следующий код CoffeeScript показывает, как получить записи, которые хранятся в MongoDB.
#Requiring the Mongodb package mongo = require 'mongodb' #Creating a MongoClient object MongoClient = mongo.MongoClient #Preparing the URL url = 'mongodb://localhost:27017/testdb' #Connecting to the server MongoClient.connect url, (err, db) -> if err console.log 'Unable to connect . Error:', err else console.log 'Connection established to', url #Creating collection object col = db.collection('My_collection') #Inserting Documents col.find({name: 'Ram'}).toArray (err, result)-> if err console.log err else console.log 'Found:', result #Closing connection db.close() return return
Сохраните приведенный выше код в файле с именем read_documents.coffee и выполните его, как показано ниже. Эта программа извлекает необходимый документ из указанной коллекции и отображает его, как показано ниже.
C:\> coffee read_documents.coffee Connection established to mongodb://localhost:27017/testdb Found: [ { _id: 56e269c10478809c3009ad1e, name: 'Ram', age: 26, city: 'Hyderabad' } ]
Вы также можете прочитать все документы, существующие в определенной коллекции, выполнив функцию find (), не передавая ей никаких аргументов, как показано ниже.
#Requiring the Mongodb package mongo = require 'mongodb' #Creating a MongoClient object MongoClient = mongo.MongoClient #Preparing the URL url = 'mongodb://localhost:27017/testdb' #Connecting to the server MongoClient.connect url, (err, db) -> if err console.log 'Unable to connect . Error:', err else console.log 'Connection established to', url #Creating collection object col = db.collection('My_collection') #Reading all Documents col.find().toArray (err, result)-> if err console.log err else console.log 'Found:', result #Closing connection db.close() return return
Сохраните приведенный выше код в файле с именем read_all_documents.coffee и выполните его, как показано ниже. эта программа извлекает все документы из указанной коллекции и отображает их, как показано ниже.
C:\> coffee read_all_documents.coffee Connection established to mongodb://localhost:27017/testdb Found: [ { _id: 56e2c5e27e0bad741a68c03e, name: 'Ram', age: 26, city: 'Hyderabad' }, { _id: 56e2c5e27e0bad741a68c03f, name: 'Rahim', age: 27, city: 'Banglore' }, { _id: 56e2c5e27e0bad741a68c040, name: 'Robert', age: 28, city: 'Mumbai' } ]
Обновление документов
Вы можете обновить документы, которые хранятся в MongoDB, используя функцию с именем update () . Следующий код CoffeeScript показывает, как обновить записи, которые хранятся в MongoDB.
#Get mongo client object MongoClient = require('mongodb').MongoClient #Connecting to mongodb url = 'mongodb://localhost:27017/testdb' MongoClient.connect url, (err, db) -> if err console.log 'Unable to connect . Error:', err else console.log 'Connection established to', url #Creating collection col = db.collection('My_collection') #Reading Data col.update {name:'Ram'},{$set:{city:'Delhi'}},(err, result)-> if err console.log err else console.log "Document updated" #Closing connection db.close() return return
Эта программа обновляет город сотрудника по имени Рам из Хайдарабада в Дели.
Сохраните приведенный выше код в файле с именем update_documents.coffee и выполните его, как показано ниже. эта программа извлекает документы из указанной коллекции и отображает их, как показано ниже.
C:\> coffee update_documents.coffee Connection established to mongodb://localhost:27017/testdb Document updated
После обновления, если вы запустите программу read_documents.coffee , вы увидите, что имя города человека по имени Рам обновляется с Хайдарабада до Дели .
C:\> coffee Read_all_documents.coffee Connection established to mongodb://localhost:27017/testdb Found: [ { _id: 56e2c5e27e0bad741a68c03e, name: 'Ram', age: 26, city: 'Delhi' }, { _id: 56e2c5e27e0bad741a68c03f, name: 'Rahim', age: 27, city: 'Banglore' }, { _id: 56e2c5e27e0bad741a68c040, name: 'Robert', age: 28, city: 'Mumbai' } ]
Удаление документов
Вы можете удалить все документы из коллекции, используя функцию remove () . Следующий код CoffeeScript показывает, как удалить все записи, которые хранятся в MongoDB.
#Get mongo client object MongoClient = require('mongodb').MongoClient #Connecting to mongodb url = 'mongodb://localhost:27017/testdb' MongoClient.connect url, (err, db) -> if err console.log 'Unable to connect . Error:', err else console.log 'Connection established to', url #Creating collection col = db.collection('My_collection') #Deleting Data col.remove() console.log "Document deleted" #Closing connection db.close() return
Сохраните приведенный выше код в файле с именем delete_documents.coffee и выполните его, как показано ниже. эта программа удаляет все документы в указанной коллекции, отображая следующие сообщения.
C:\> coffee delete_documents.coffee Connection established to mongodb://localhost:27017/testdb Document deleted
После удаления, если вы запустите программу read_documents.coffee , вы получите пустую коллекцию, как показано ниже.