MongoDB¶
MongoDB 是一款高性能、开源的 NoSQL 文档数据库。
在新浪云上,你可以很方便的创建和管理 MongoDB 集群。目前 MongoDB 集群采用三节点副本集的高可用架构,三个数据节点位于不同的物理服务器上,自动同步数据。其中 Primary 和 Secondary 节点提供服务,当 Primay 节点出现故障,系统自动选举新的 Primary 节点。 同时我们还提供了在线扩容、自动备份、监控等功能来帮助你更好地管理集群。
创建¶
进入云应用控制台的任一应用管理页面,点击左侧栏的『数据库与缓存/MongoDB』,进入 MongoDB 的管理页面,点击上方的『创建 MongoDB』,如下图所示:
创建实例需要设置以下参数:
- 名称:最大长度不超过 32 个字符,限英文、数字、下划线,横线。
- 配置:目前提供 4 种配置的 MongoDB 实例。
创建成功后,点击实例管理,即可进入信息页面,在信息页面中,可以查看连接实例需要的URI,以及用户名密码等信息。
数据导入¶
如果你想将自己现有 MongoDB 实例里的数据导入到新浪云线上的 MongoDB 实例里,可以按以下步骤操作:
使用 mongodump 导出数据:
$ mongodump --host=MongoDB 地址 --username= 用户名 --password= 密码
导出成功后,会在当前目录生成一个 dump 目录,所有的数据都会被导出到 dump 目录中。
通过 VPN 隧道 连接到新浪云的云端网络。执行以下命令将数据导入到线上 MongoDB 实例里。
$ mongorestore --host=MongoDB 地址 --username= 用户名 --password= 密码 --dir=dump
注解
mongodump 和 mongorestore 是 MongoDB 的命令行导入 / 导出工具。
Windows环境下数据导入¶
连接VPN¶
MongoDB的服务端默认只能从新浪云的内网访问,您在本地使用mongorestore程序导入本地的数据前,必须要通过新浪云提供的CloudBridge连接到新浪云的内网,如何使用请参考:http://www.sinacloud.com/doc/sae/php/cloudbridge.html
下载Git for Windows¶
在Windows环境下推荐使用Git for Windows程序运行命令行,并推荐1.9.15版本,下载地址: https://github.com/msysgit/msysgit/releases/download/Git-1.9.5-preview20150319/Git-1.9.5-preview20150319.exe 。
下载MongoDB Windows版本¶
安装完成Git for Windows后从MongoDB官方下载Windows版本 https://www.mongodb.com/download-center#community,选择“community”下载Windows分类的msi程序安装。
示例中,MongoDB被安装到了 D:\Program Files\MongoDB\Server\3.6\bin
目录,如图所示:
注解
如果您安装了程序到其他的路径,以下的路径请自行更换为您安装的路径。
找到mongorestore命令¶
在安装的路径下可以看到mongorestore.exe的程序,这个程序就是用于导入数据的程序,如图所示:
执行数据导入命令¶
在 D:\Program Files\MongoDB\Server\3.6\bin
目录下点击鼠标右键,选择“Git bash”进入命令行:
执行命令:
mongorestore --host xxxxxxx.mongodb.sae.sina.com.cn:10101,yyyyyyyy.mongodb.sae.sina.com.cn:10101 --username root --password YCg7L3GoB7bXXXXXXXXXXXXXXXXXXXXRLMqHO3CguDg47 /D/6code/mongodb/
注解
以上的host、username等等信息请替换成您的MongoDB的链接信息,管理后台可以查询。
说明 | |
---|---|
–host | 数据库的连接信息,新浪云为replicaset模式,多个主机端口间请用英文逗号分割,参考示例 |
–username | 数据库用户名,在新浪云都是root |
–password | 数据库密码,在管理平台可以查询 |
/D/6code/mongodb/ | 本地的数据目录,表示D盘下的6code文件夹下的mongodb文件夹。 |
–db | 本例子中没有指定,如果指定了表示将数据导入到某个特定的库中。 |
管理¶
你可以通过 VPN 隧道 连接到新浪云的云端网络。然后使用 MongoDB Admin UIs 这里列出的任意管理工具来管理 MongoDB。
也可以通过新浪云提供的 Web 客户端进行管理,在对应实例后面的操作栏中选择『管理』即可。
删除¶
进入 MongoDB 的管理页面,在对应实例后面的操作栏中选择『删除』即可。
扩容¶
你可以在线扩大或者缩小 MongoDB 实例的内存容量,进入 MongoDB 的管理页面,在对应实例后面的操作栏中选择『修改』即可,扩容期间 MongoDB 会重启,可能会造成短时间的服务不可用。
高可用¶
MongoDB 复制集(Replica Set) 通过存储多份数据副本来保证数据的高可靠,通过自动的主备切换机制来保证服务的高可用。但需要注意的是,连接副本集需要使用特殊的连接字符串,否则服务高可用将不复存在。
因此,连接时需要使用形如 mongodb://[username:password@]host1[:port1][,host2[:port2],…[,hostN[:portN]]][/[database][?options]] 的连接字符串,该字符串可以在服务详情页查询到。
NodeJS¶
你可以使用 mongodb <https://github.com/mongodb/node-mongodb-native> 来连接 MongoDB 数据库。
安装并添加依赖到package.json:
$ npm install --save mongodb
使用:
var MongoClient = require('mongodb').MongoClient;
MongoClient.connect(MONGODB_URI, function(err, db) {
if(err) throw err;
// ...
});
Python¶
您可以使用 MongoDB 官方提供的 pymongo 来访问 MongoDB 数据库。
添加 pymongo 到 requirements.txt 。然后就可以使用其API访问 MongoDB 了。
import pymongo
pymongo.MongoClient(MONGODB_URI)
其中 MONGODB_URI 是 MongoDB 的连接字符串,你可以在你创建的 MongoDB 数据库的管理页面找到这个字符串。
Java¶
在已经建立好的容器Java项目中的 pom.xml 文件中引入
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>3.2.2</version>
</dependency>
通过在命令行中使用mvn package或者Eclipse自动编译会从中央仓库下载相应的jar包到本地仓库中
具体的使用方法:
MongoClientURI uri = new MongoClientURI("MONGODB_URI");
MongoClient client = new MongoClient(uri);
MongoDatabase db = client.getDatabase("test");
MongoCollection<Document> users = db.getCollection("users");
Document user = new Document("key", "sinacloud");
users.insertOne(user);
其中 MONGODB_URI 是 MongoDB 的链接字符串 ,你可以在你创建的 MongoDB 数据库的管理页面找到这个字符串。