mongodb的云数据库,新用户注册,提供500m免费的空间,对于创建测试的网站数据库来说,足够使用。虽然是服务器是在美国,但是链接稳定。下面就介绍注册和使用的流程。
网址
MongoDB官网:https://account.mongodb.com
Mongodb概念解析
不管我们学习什么数据库都应该学习其中的基础概念,在mongodb中基本的概念是文档、集合、数据库,下面我们挨个介绍。
下表将帮助您更容易理解Mongo中的一些概念:
基础概念学习地址:https://www.runoob.com/mongodb/mongodb-databases-documents-collections.html
SQL术语/概念 | MongoDB术语/概念 | 解释/说明 |
---|---|---|
database | database | 数据库 |
table | collection | 数据库表/集合 |
row | document | 数据记录行/文档 |
column | field | 数据字段/域 |
index | index | 索引 |
table joins | 表连接,MongoDB不支持 | |
primary key | primary key | 主键,MongoDB自动将_id字段设置为主键 |
通过下图实例,我们也可以更直观的了解Mongo中的一些概念:
云数据库操作步骤
创建组织
首先,创建一个组织,名字你可以随便写,只要符合规范即可,命名完成后点击 Next
下一步
在这里,你可以添加其他的同事进入这个组织(这里就我一个人开发,就不邀请其他人了),后点击 Create Organization
创建组织
创建项目
完成创建后,我们进去 Organization的组织
页面,在这里我们可以创建一个 project
项目
创建数据库
项目创建完成后,我们需要 Create a database
创建数据库
然后可以根据自己所在的地域,选择距离自己较近的节点,因为我当前所在的地域是北京,所以我在这里就选择东京了。然后 Create Cluster
创建集群
创建连接账户
紧接着,我们在安全与快速入门这里,需要创建账号和密码,以及ip白名单。
连接账户的创建,有两种方式,一种是用户名和密码,一种是证书。在这里我们选择一种比较简单的连接方式,就是用户名和密码了。
在环境配置这里,有两种方式,一种是本地环境,一种是云环境。在这里我们选择第一种本地环境,并且开放所有的ip进入白名单。
了这里,我们就创建成功了
创建成功
如果看到这个界面,则表示,你已经创建成功了。
测试操作
点击上图中的 Cluster0
进入集群0的节点,然后点击 Collections
集合,再点击 Add My Own Data
创建数据库和集合。
创建成功后,可以在里面插入数据测试
测试连接mongodb
点击 Connect
连接会出现以下界面,界面提供了三种连接mongodb的方式
Connect with the MongoDB Shell
表示用shell脚本连接mongodb
Connect your application
表示使用你的应用代码连接,在项目开发中,无论你使用的是 java、php、go、nodejs 都需要选择这种方式连接mongodb
Connect using MongoDB Compass
表示用客户端工具连接momgodb,你可以用mongodb官网提供的客户端工具,也可以使用 Navicat 连接
Navicat连接
选择 Connect using MongoDB Compass
则会提示相对的连接信息,然后复制连接信息,注意这里的 <passwor>
需要改成你设定的密码
Navicat 中连接方式选择 Mongodb 连接,然后选择 url
连接
应用后,进行连接测试,查看是否连接成功
代码连接
基于Go语言测试
代码下载:https://github.com/mailjobblog/dev_go/tree/master/211209-mongodb-connect
package main
import (
"context"
"fmt"
"go.mongodb.org/mongo-driver/mongo"
"go.mongodb.org/mongo-driver/mongo/options"
"log"
"time"
)
func main() {
// 连接 mongodb
// 注意:这里的账号和密码要改成你自己的
clientOptions := options.Client().ApplyURI("mongodb+srv://test_user:test_pwd@cluster0.sy0un.mongodb.net/myFirstDatabase?retryWrites=true&w=majority")
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
defer cancel()
client, err := mongo.Connect(ctx, clientOptions)
if err != nil {
log.Fatal("mongodb 连接失败,error:", err)
}
// 定义连接库和连接集合
collection := client.Database("t_db").Collection("t_coll")
// 定义要插入的数据
user := UserData{
Name: "张三",
Age: 20,
}
// 测试插入数据
insert,err := collection.InsertOne(ctx, &user)
if err != nil {
log.Fatal("mongodb 数据插入失败,error:", err)
}
// 打印执行结果的id
fmt.Println(insert)
}
// UserData 定义插入数据的结构体
type UserData struct {
// Id string `bson:"_id,omitempty" json:"id"` // 这里不设置id,让数据库自动生成
Name string `bson:"name" json:"name"`
Age int `bson:"age" json:"age"`
}
基于Node.js语言测试
代码下载:https://github.com/mailjobblog/dev_nodejs/tree/master/211209-mongodb-connect
const {
MongoClient } = require('mongodb');
// 定义数据库连接地址
// 这里:这里的用户名和密码要改成你自己的
const uri = "mongodb+srv://test_user:test_pwd@cluster0.sy0un.mongodb.net/myFirstDatabase?retryWrites=true&w=majority";
// 定义异步方法
const testMongo = async () => {
// connect to your cluster
const client = await MongoClient.connect(uri, {
useNewUrlParser: true,
useUnifiedTopology: true,
});
// specify the DB's name
const db = client.db('t_db');
// 数据插入测试
const items = await db.collection('t_coll').insertOne({
name: "test_names" });
console.log(items);
// close connection
client.close();
}
// 调用异步方法
testMongo();