- CoffeeScript 教程
- CoffeeScript - 首页
- CoffeeScript - 概述
- CoffeeScript - 环境
- CoffeeScript - 命令行工具
- CoffeeScript - 语法
- CoffeeScript - 数据类型
- CoffeeScript - 变量
- CoffeeScript - 运算符和别名
- CoffeeScript - 条件语句
- CoffeeScript - 循环
- CoffeeScript - 列表推导式
- CoffeeScript - 函数
- CoffeeScript 面向对象
- CoffeeScript - 字符串
- CoffeeScript - 数组
- CoffeeScript - 对象
- CoffeeScript - 范围
- CoffeeScript - 展开运算符
- CoffeeScript - 日期
- CoffeeScript - 数学
- CoffeeScript - 异常处理
- CoffeeScript - 正则表达式
- CoffeeScript - 类和继承
- CoffeeScript 高级
- CoffeeScript - Ajax
- CoffeeScript - jQuery
- CoffeeScript - MongoDB
- CoffeeScript - SQLite
- CoffeeScript 有用资源
- CoffeeScript - 快速指南
- CoffeeScript - 有用资源
- CoffeeScript - 讨论
CoffeeScript - MongoDB
MongoDB是一个跨平台的文档型数据库,提供高性能、高可用性和易扩展性。MongoDB基于集合和文档的概念。更多信息请阅读我们的MongoDB 教程。
本章将学习如何使用CoffeeScript与MongoDB数据库进行通信。
安装
MongoDB数据库可以通过使用Node.js 2.0 MongoDB驱动程序与CoffeeScript集成。首先,您需要在您的系统中安装MongoDB,请参考我们MongoDB教程的环境章节。
成功安装MongoDB后,浏览其bin文件夹(如果您没有设置路径),然后启动MongoDB服务,如下所示。
C:\Program Files\MongoDB\Server\3.2\bin> mongod
最后,通过在命令提示符中执行以下NPM命令来安装MongoDB驱动程序及其依赖项。
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://127.0.0.1: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://127.0.0.1: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://127.0.0.1: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://127.0.0.1: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://127.0.0.1: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://127.0.0.1:27017/testdb Documents inserted successfully
读取文档
您可以使用名为find()的函数检索存储在MongoDB中的文档。以下CoffeeScript代码展示了如何检索存储在MongoDB中的记录。
#Requiring the Mongodb package mongo = require 'mongodb' #Creating a MongoClient object MongoClient = mongo.MongoClient #Preparing the URL url = 'mongodb://127.0.0.1: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://127.0.0.1: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://127.0.0.1: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://127.0.0.1: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' } ]
更新文档
您可以使用名为update()的函数更新存储在MongoDB中的文档。以下CoffeeScript代码展示了如何更新存储在MongoDB中的记录。
#Get mongo client object MongoClient = require('mongodb').MongoClient #Connecting to mongodb url = 'mongodb://127.0.0.1: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
此程序将名为Ram的员工的城市从Hyderabad更新为Delhi。
将上述代码保存到名为update_documents.coffee的文件中,并按如下所示执行它。此程序检索指定集合中的文档并显示它,如下所示。
C:\> coffee update_documents.coffee Connection established to mongodb://127.0.0.1:27017/testdb Document updated
更新后,如果您执行read_documents.coffee程序,您将观察到名为Ram的人的城市名称已从Hyderabad更新为Delhi。
C:\> coffee Read_all_documents.coffee Connection established to mongodb://127.0.0.1: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://127.0.0.1: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://127.0.0.1:27017/testdb Document deleted
删除后,如果您执行read_documents.coffee程序,您将得到一个空集合,如下所示。
C:\> coffee Read_all_documents.coffee Connection established to mongodb://127.0.0.1:27017/testdb Found: [ ]