使用和管理 MongoDB 服务
什么是 MongoDB
MongoDB 是一个高性能、开源、无 Schema 的 NoSQL 数据库管理系统,常被用于高流量网站,在线游戏网站和搜索引擎的大规模数据管理和分类。它支持的数据结构非常松散,是类似 json 的 bson 格式,因此可以存储比较复杂的数据类型。MongoDB 最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
在 DaoCloud 服务集成创建 MongoDB 服务
1.登录 DaoCloud 控制台,选择「服务集成」。
2.在「Dao服务」里选择 MongoDB 服务。
3.点击 「创建服务实例」。
4.输入服务实例名称,选择合适的配置(注意:在配置里 DaoCloud 提供了「基础服务」和「生产环境」两种类型的配置,您可以根据您的需求选择相应的配置类型),点击「创建」按钮。
5.创建完成,可以看到 MongoDB 服务的相关参数。
6.查看我已创建的服务
MongoDB 与应用绑定
1.选择需要绑定 MongoDB 服务的应用,在「应用配置」下的「服务绑定」里选择刚刚创建好的 MongoDB 服务。(您可以在创建应用时绑定 MongoDB 服务,也可以把 MongoDB 服务绑定在现有的应用上)。
2.当您选择了要绑定的 MongoDB 服务以后,会发现下面出现了关于连接 MongoDB 所需要的信息,在您选择保存更改以后,这些信息会写入到您绑定应用的环境变量里,这样您就可以在代码里通过读取相关环境变量来使用 MongoDB 服务。请注意,在特定的代码中,需要修改环境变量的服务别名,才能与 MongoDB 建立连接,请阅读代码或开源项目的 README 文件。
3.如何读取环境变量,下面我们展示一段使用 Ruby 语言来读写 MongoDB 的具体代码(完整的 Docker 镜像请前往 GitHub ,您可以 fork 到自己的项目里运行这个例子)
require 'sinatra'
require 'mongo'
module Sinatra
class Base
set :server, %w[thin mongrel webrick]
set :bind, '0.0.0.0'
set :port, 8080
end
end
host = ENV['MONGODB_PORT_27017_TCP_ADDR'] || 'localhost'
port = ENV['MONGODB_PORT_27017_TCP_PORT'] || 27017
database = ENV['MONGODB_INSTANCE_NAME'] || 'test'
username = ENV['MONGODB_USERNAME']
password = ENV['MONGODB_PASSWORD']
hostport=host+':'+port.to_s
$db = Mongo::Client.new([hostport],
:database => database,
:user => username,
:password => password)
get '/' do
body "welcome,this is a info about MongoDB:
host: #{ENV['MONGODB_PORT_27017_TCP_ADDR']}
username: #{ENV['MONGODB_USERNAME']}
password: #{ENV['MONGODB_PASSWORD']}
port: #{ENV['MONGODB_PORT_27017_TCP_PORT']}
database: #{ENV['MONGODB_INSTANCE_NAME']}"
end
get '/get/:name' do
res = $db[:artists].insert_one({ name: params['name'] })
redirect to('/get')
end
get '/get' do
result = $db[:artists].find()
s=[]
result.each do |a|
s.push a['name']
end
body "#{s}"
end
成功部署后访问应用,便可以看到连接 MongoDB 所需要的相关信息已经被成功读取出来,并且您可以参考上面的代码往 MongoDB 里写入数据,例如:http://your_app_url_path/get/name
管理 MongoDB 服务
- Mongo Express 是使用 Node.js 和 Express 框架实现的轻量级 MongoDB 数据库管理程序,通过它您可以轻松管理您的 MongoDB 数据库。这里我们使用 DaoCloud 提供的 Mongo Express 镜像来创建一个 Mongo Express 应用,用它来管理我们的 MongoDB 服务。
- 进入 DaoCloud 镜像仓库,选择 「DaoCloud镜像」下的 Mongo Express 镜像,点击「部署最新版本」。
输入应用名称,选择运行环境,点击「基础设置」,进入下一步。
- 绑定要使用的 MongoDB 服务,点击「立即部署」,应用启动成功后就可以进入 Mongo Express 执行常规的 MongoDB 服务管理操作了。
注意:目前在 DaoCloud 镜像仓库提供的 Mongo Express 版本不支持授权认证,您启动 Mongo Express 容器后,容器的 URL 是公开访问的。所以在您使用完毕后请立即「停止」容器,防止 MongoDB 数据库被他人操作。
至此,我们已经掌握了如何创建和使用 DaoCloud 平台之上的 MongoDB 服务。