云端的MongoDBMongoDB
可以配置在主流的云存储平台上,如AWS
, Azure
, GCP
. 基于云存储平台提供MongoDB服务的可以是云存储公司,如亚马逊,也可以是其他类型公司. MongoDB Atlas
是Mongo公司基于云存储提供的MongoDB服务, 其MongoDB服务可以部署到AWS,Azure,或者GCP任何一个平台上,并且提供了一个功能受限的免费MongoDB存储服务.
配置免费的MongoDB Atlas存储服务
这里注册的是MongoDB Atlas
的帐号,进入配置页面后,根据左下角的Get Started
步骤,完成基本的配置.
其中,数据库用户和密码是用来访问MongoDB数据的.配置完成后, 在Overview
界面中可以看到配置的集群的名字.点击CONNECT
按钮,在弹出的窗口中,显示了三种可以连接到MongoDB的方式.
即可以通过Mongo shell
, MongoDB客户端驱动API
或者MongoDB Compass
访问Atlas的MongoDB服务.访问Atlas的MongoDB服务需要URL
地址字符串.
点击Connect with the Mongo Shell
,然后选择Short SRV connection string(shell 3.6+)
,会出现使用Mongo shell方式访问的URL字符串.
其中--username
后面的字符串是之前配置的数据库用户名.
使用MongoDB驱动API以及Mongo Compass方式访问Atlas MongoDB也都有相应的URL字符串,可以点击相应的连接方式获取.
使用Mongo shell访问Atlas
从MongoDB官网https://www.mongodb.com/download-center/community下载最新版本的Mongo shell包.
根据实际情况选择相应的OS
系统,注意Package
下拉列表中选择shell
.
安装下载的MongoDB shell包(Ubuntu系统下):
sudo dpkg -i mongodb-org-shell_4.0.5_amd64.deb
启动MongoDB shell:
mongo "mongodb+srv://fredcluster0-ftd6q.mongodb.net/test" --username fred
其中URL地址和用户名根据具体配置显示. 该命令执行后,会在终端中提示输入用户密码.输入密码后,即连接到了Atlas.可以执行MongoDB shell的命令进行访问.
切换数据库:
MongoDB Enterprise FredCluster0-shard-0:PRIMARY> use test
switched to db test
插入文档:
MongoDB Enterprise FredCluster0-shard-0:PRIMARY> db.inventory.insertOne( { item: "fred", qty: 100, tags: ["cotton"], size: { h: 28, w: 35.5, uom: "cm" } } )
{
"acknowledged" : true,
"insertedId" : ObjectId("5c56baf9cad345ae30e435c9")
}
执行成功后, 可以在Atlas的REST
管理界面中查看结果. 点击Collections
:
使用MongoDB shell查询文档:
MongoDB Enterprise FredCluster0-shard-0:PRIMARY> db.inventory.find( { item: "fred" } )
{ "_id" : ObjectId("5c56baf9cad345ae30e435c9"), "item" : "fred", "qty" : 100, "tags" : [ "cotton" ], "size" : { "h" : 28, "w" : 35.5, "uom" : "cm" } }
使用Mongo 驱动API访问Atlas
在Atlas的REST管理界面中,选择Connect Your Application
,获得该方式访问Atlas的URL地址字符串.
MongoDB 提供了主流编程语言(C/C++
, Java
, PHP
, Python
等)的客户端驱动来支持以编程的方式访问数据库.MongoDB的客户端驱动支持情况请参考:https://docs.mongodb.com/ecosystem/drivers/
具体驱动API的使用,可以参考相应的文档或者源代码.
基于Java
或者C/C++
平台的驱动编程开发时,需要注意的是:
- 最新的Java客户端驱动需要JDK9;
- C++驱动依赖于C驱动.
- 在使用C驱动访问MongoDB时,因为C驱动的两个库
mongoc
和bson
调用了其他库实现,在程序链接时,需要链接进这些依赖库,其中包括:DNS
解析用到的resolv
库,openssl
的两个库ssl
和crypto
,多线程库pthread
,系统的dl
库和rt
库.