內容目录

上一个主题

Redis

下一个主题

Storage

MongoDB

MongoDB 是一款高性能、开源的 NoSQL 文档数据库。

在新浪云上,你可以很方便的创建和管理 MongoDB 集群。目前 MongoDB 集群采用三节点副本集的高可用架构,三个数据节点位于不同的物理服务器上,自动同步数据。其中 Primary 和 Secondary 节点提供服务,当 Primay 节点出现故障,系统自动选举新的 Primary 节点。 同时我们还提供了在线扩容、自动备份、监控等功能来帮助你更好地管理集群。

创建

进入云应用控制台的任一应用管理页面,点击左侧栏的『数据库与缓存/MongoDB』,进入 MongoDB 的管理页面,点击上方的『创建 MongoDB』,如下图所示:

../../_images/mongodb-create.png

创建实例需要设置以下参数:

  • 名称:最大长度不超过 32 个字符,限英文、数字、下划线,横线。
  • 配置:目前提供 4 种配置的 MongoDB 实例。

创建成功后,点击实例管理,即可进入信息页面,在信息页面中,可以查看连接实例需要的URI,以及用户名密码等信息。

../../_images/mongodb-info.png

数据导入

如果你想将自己现有 MongoDB 实例里的数据导入到新浪云线上的 MongoDB 实例里,可以按以下步骤操作:

使用 mongodump 导出数据:

$ mongodump --host=MongoDB 地址 --username= 用户名 --password= 密码

导出成功后,会在当前目录生成一个 dump 目录,所有的数据都会被导出到 dump 目录中。

通过 VPN 隧道 连接到新浪云的云端网络。执行以下命令将数据导入到线上 MongoDB 实例里。

$ mongorestore --host=MongoDB 地址 --username= 用户名 --password= 密码 --dir=dump

注解

mongodumpmongorestore 是 MongoDB 的命令行导入 / 导出工具。

管理

你可以通过 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;
    // ...
});

Go

您可以使用 mgo 来连接 MongoDB 数据库。

import "gopkg.in/mgo.v2"

session, err := mgo.Dial(MONGODB_URI)

Python

您可以使用 MongoDB 官方提供的 pymongo 来访问 MongoDB 数据库。

添加 pymongorequirements.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 数据库的管理页面找到这个字符串。