Node.js - MongoDB 创建数据库

你好,有抱负的程序员们!今天,我们将踏上一段激动人心的旅程,进入Node.js和MongoDB的世界。作为你友好的人工智能计算机科学老师,我将引导你使用这些强大的工具创建数据库。如果你是编程新手,不用担心——我们将从基础开始,逐步深入。那么,拿起一杯咖啡(或者你最喜欢的饮料),让我们一起开始吧!

Node.js - MongoDB Create Database

MongoDB是什么?

在我们开始创建数据库之前,让我们花点时间了解一下MongoDB是什么。想象你有一个巨大的数字文件柜,你可以存储各种各样的信息。MongoDB本质上就是这样的——一个数据库,以灵活的、类似JSON的格式BSON(二进制JSON)存储数据。就像有一个超级有组织的助手,可以快速找到并检索你需要的信息。

连接字符串:通往MongoDB的大门

既然我们知道了MongoDB是什么,让我们来谈谈如何连接到它。将连接字符串想象为你和MongoDB之间的一个秘密握手。它包含了建立连接所需的所有信息,比如MongoDB服务器的地址、端口号和任何认证详情。

下面是一个典型的MongoDB连接字符串的样子:

mongodb://username:password@hostname:port/database

让我们分解一下:

  • mongodb://:这是协议,告诉你的应用程序它正在连接到一个MongoDB数据库。
  • username:password:你的登录凭据(如果需要的话)。
  • hostname:MongoDB服务器的地址(例如,对你的计算机是localhost)。
  • port:MongoDB监听的端口号(默认是27017)。
  • database:你想连接的数据库的名称。

示例:数据库列表

现在,让我们写一些代码来练习!我们将从连接到MongoDB并列出所有数据库开始。这是一个检查我们的连接是否正常工作并查看已经存在的数据库的好方法。

const MongoClient = require('mongodb').MongoClient;

// 连接URL
const url = 'mongodb://localhost:27017';

// 数据库名称
const dbName = 'myproject';

// 创建一个新的MongoClient
const client = new MongoClient(url, { useNewUrlParser: true, useUnifiedTopology: true });

// 连接到服务器
client.connect(function(err) {
if (err) {
console.error('连接到MongoDB失败:', err);
return;
}

console.log("成功连接到服务器");

// 获取admin数据库
const adminDb = client.db(dbName).admin();

// 列出所有可用的数据库
adminDb.listDatabases(function(err, dbs) {
if (err) {
console.error('列出数据库失败:', err);
return;
}

console.log("数据库:");
dbs.databases.forEach(function(db) {
console.log(" - " + db.name);
});

client.close();
});
});

让我们分解一下这段代码:

  1. 我们首先要求Node.js的MongoDB驱动。
  2. 我们设置我们的连接URL和数据库名称。
  3. 我们创建一个新的MongoClient,带有一些性能选项。
  4. 我们使用connect方法来建立到MongoDB的连接。
  5. 如果连接成功,我们获取admin数据库。
  6. 我们使用listDatabases方法来获取所有数据库的列表。
  7. 我们打印出所有数据库的名称。
  8. 最后,我们关闭连接。

当你运行这段代码时,你将看到你MongoDB实例中的所有数据库列表。就像问你的数字文件柜,“嘿,你有什么文件夹?”。

创建一个新的数据库

现在是激动人心的部分——创建我们自己的数据库!在MongoDB中,当你在其中首次存储数据时,数据库和集合会自动创建。这就像魔法一样——你不需要预先显式创建它们。

让我们创建一个名为"myNewDB"的新数据库,并添加一个名为"students"的集合:

const MongoClient = require('mongodb').MongoClient;

// 连接URL
const url = 'mongodb://localhost:27017';

// 数据库名称
const dbName = 'myNewDB';

// 创建一个新的MongoClient
const client = new MongoClient(url, { useNewUrlParser: true, useUnifiedTopology: true });

// 连接到服务器
client.connect(function(err) {
if (err) {
console.error('连接到MongoDB失败:', err);
return;
}

console.log("成功连接到服务器");

// 获取数据库
const db = client.db(dbName);

// 创建一个新的集合
db.createCollection("students", function(err, res) {
if (err) {
console.error('创建集合失败:', err);
return;
}

console.log("集合创建成功!");

// 插入一个文档
db.collection('students').insertOne({
name: "John Doe",
age: 20,
grade: "A"
}, function(err, res) {
if (err) {
console.error('插入文档失败:', err);
return;
}

console.log("文档已插入");

// 关闭连接
client.close();
});
});
});

让我们分解一下这里发生的事情:

  1. 我们像以前一样连接到MongoDB。
  2. 我们使用client.db(dbName)来获取我们的新数据库。如果它不存在,MongoDB会为我们创建它。
  3. 我们使用db.createCollection()创建一个名为"students"的新集合。
  4. 我们使用insertOne()将一个文档插入到我们的新集合中。
  5. 最后,我们关闭连接。

当你运行这段代码时,MongoDB将创建"myNewDB"数据库和"students"集合,并插入包含John Doe信息的文档。就像创建一个新的文件柜,添加一个名为"students"的文件夹,并将John的文件放入其中。

结论

恭喜你!你刚刚学会了如何连接到MongoDB,列出现有数据库,并创建一个新的带有集合的数据库。你已经走上了成为数据库法师的道路!

记住,熟能生巧。尝试创建不同的数据库、集合和插入各种类型的文档。尝试查询你插入的数据。你越多地摆弄MongoDB,就会越熟练。

下面是一个总结我们使用的主要方法的表格:

方法 描述
MongoClient.connect() 与MongoDB建立连接
client.db() 获取对数据库的引用
adminDb.listDatabases() 列出所有可用的数据库
db.createCollection() 创建一个新的集合
collection.insertOne() 将一个文档插入到集合中

快乐编码,愿你的数据库总是井井有条,查询速度如闪电般迅速!

Credits: Image by storyset