2

免费使用mongodb数据库

 2 years ago
source link: https://blog.mailjob.net/posts/3596683176.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

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中的一些概念:

img

云数据库操作步骤

首先,创建一个组织,名字你可以随便写,只要符合规范即可,命名完成后点击 Next 下一步

image-20211208171555994

在这里,你可以添加其他的同事进入这个组织(这里就我一个人开发,就不邀请其他人了),后点击 Create Organization 创建组织

image-20211208171823314

完成创建后,我们进去 Organization的组织 页面,在这里我们可以创建一个 project 项目

image-20211208172036852

创建数据库

项目创建完成后,我们需要 Create a database创建数据库

image-20211208172250036
image-20211208172337099

然后可以根据自己所在的地域,选择距离自己较近的节点,因为我当前所在的地域是北京,所以我在这里就选择东京了。然后 Create Cluster创建集群

![image-20211208172525043](/Users/libin/Library/Application Support/typora-user-images/image-20211208172525043.png)

创建连接账户

紧接着,我们在安全与快速入门这里,需要创建账号和密码,以及ip白名单。

连接账户的创建,有两种方式,一种是用户名和密码,一种是证书。在这里我们选择一种比较简单的连接方式,就是用户名和密码了。

image-20211208173049240

在环境配置这里,有两种方式,一种是本地环境,一种是云环境。在这里我们选择第一种本地环境,并且开放所有的ip进入白名单。

image-20211208173400381

了这里,我们就创建成功了

如果看到这个界面,则表示,你已经创建成功了。

image-20211208173948382

点击上图中的 Cluster0进入集群0的节点,然后点击 Collections集合,再点击 Add My Own Data 创建数据库和集合。

image-20211208183310875

创建成功后,可以在里面插入数据测试

测试连接mongodb

点击 Connect连接会出现以下界面,界面提供了三种连接mongodb的方式

image-20211208174530814

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>需要改成你设定的密码

image-20211208180250418

Navicat 中连接方式选择 Mongodb 连接,然后选择 url 连接

image-20211208180551317

应用后,进行连接测试,查看是否连接成功

image-20211208180746569
image-20211209121842356

基于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:[email protected]/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:[email protected]/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();

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK