- Node.js教程
- Node.js - 教程
- Node.js - 简介
- Node.js - 环境设置
- Node.js - 首次申请
- Node.js - REPL 终端
- Node.js - 命令行选项
- Node.js - 包管理器 (NPM)
- Node.js - 回调概念
- Node.js - 上传文件
- Node.js - 发送电子邮件
- Node.js - 活动
- Node.js - 事件循环
- Node.js - 事件发射器
- Node.js - 调试器
- Node.js - 全局对象
- Node.js - 控制台
- Node.js - 流程
- Node.js - 扩展应用程序
- Node.js - 包装
- Node.js - Express 框架
- Node.js - RESTful API
- Node.js - 缓冲器
- Node.js - Streams
- Node.js - 文件系统
- Node.js MySQL
- Node.js - MySQL 快速入门
- Node.js - MySQL创建数据库
- Node.js - MySQL创建表
- Node.js - MySQL Insert Into
- Node.js - MySQL Select From
- Node.js - MySQL Where 子句
- Node.js - MySQL Order By
- Node.js - MySQL Delete
- Node.js - MySQL Update
- Node.js - MySQL Join
- Node.js MongoDB
- Node.js - MongoDB 快速入门
- Node.js - MongoDB 创建数据库
- Node.js - MongoDB 创建集合
- Node.js - MongoDB Insert
- Node.js - MongoDB Find
- Node.js - MongoDB 查询
- Node.js - MongoDB 排序
- Node.js - MongoDB Delete
- Node.js - MongoDB Update
- Node.js - MongoDB Limit
- Node.js - MongoDB Join
- Node.js模块
- Node.js - 模块
- Node.js - 内置模块
- Node.js - utility 模块
- Node.js - Web 模块
Node.js - MongoDB 创建数据库
MongoDB 是一个开源、跨平台、面向文档的数据库环境。MongoDB使用类似JSON的无模式文档。多个文档构成一个集合,并且一个或多个集合可能存在于 MongoDB 数据库中。在本章中,我们将学习如何使用Node.js应用程序创建 MongoDB 数据库。
MongoDB数据库管理软件有以下三个版本:
- MongoDB 社区 - MongoDB 的源代码可用、免费使用和自我管理的版本,可用于本地安装,适用于 Windows、Linux 和 macOS。
- MongoDB Enterprise - MongoDB的商业,基于订阅,自我管理的MongoDB版本,具有许多比社区版本更高级的功能。
- MongoDB Atlas - 一种按需、完全托管的服务,用于在云中部署MongoDB。它在 AWS、Microsoft Azure 和 Google Cloud Platform 上运行。
连接字符串
用于 Node.js 的 mongodb 驱动程序使用 require() 函数导入到代码中。MongoClient 类的对象表示数据库连接。您需要将连接字符串传递给其构造函数。
const { MongoClient } = require('mongodb');
const client = new MongoClient(ConnectionString);
MongoDB连接字符串必须是以下格式之一:
标准连接字符串格式 - 此格式用于连接到自托管的 MongoDB 独立部署、副本集或分片集群。标准 URI 连接方案的格式为 −
默认连接字符串为 −
SRV 连接格式 − 具有对应于 DNS SRV 记录的主机名的连接字符串。MongoDB Atlas使用SRV连接格式。MongoDB支持DNS构建的种子列表。它允许更灵活的部署,并能够在不重新配置客户端的情况下轮流更改服务器。SRV URI 连接方案具有以下形式 -
下面是 SRV 连接字符串的示例 -
const uri = "mongodb+srv://user:pwd@cluster0.zhmrg1h.mongodb.net/?retryWrites=true&w=majority";
在以下示例中,我们使用标准连接字符串来提取数据库列表。
示例:数据库列表
MongoClient 对象的 connect() 方法返回一个 Promise。对 connect() 方法的调用是异步的。接下来,调用函数 listdatabases()。
const { MongoClient } = require('mongodb');
async function main() {
const uri = "mongodb://localhost:27017/";
const client = new MongoClient(uri);
try {
// Connect to the MongoDB cluster
await client.connect();
// Make the appropriate DB calls
await listDatabases(client);
} catch (e) {
console.error(e);
} finally {
// Close the connection to the MongoDB cluster
await client.close();
}
}
main().catch(console.error);
async function listDatabases(client) {
databasesList = await client.db().admin().listDatabases();
console.log("Databases:");
databasesList.databases.forEach(db => console.log(` - ${db.name}`));
};
输出
- admin
- config
- local
- myProject
- mydb
创建新数据库
要在服务器上创建新数据库,您需要调用 MongoClient 类的 db() 方法。
var dbobj = client.db(database_name, options);
db() 方法返回一个数据库实例,该实例表示服务器上的数据库。在以下示例中,我们演示了如何在 MongoDB 中创建一个名为 mydatabase 的新数据库。
const {MongoClient} = require('mongodb');
async function main(){
const uri = "mongodb://localhost:27017/mydb";
const client = new MongoClient(uri);
try {
// Connect to the MongoDB cluster
await client.connect();
await createdb(client, "mydatabase");
} finally {
// Close the connection to the MongoDB cluster
await client.close();
}
}
main().catch(console.error);
async function createdb(client, dbname){
const dbobj = await client.db(dbname);
console.log("Database created");
console.log(dbobj);
}
但是,请注意,在至少创建一个集合并且其中至少应有一个文档之前,不会在服务器上实际创建数据库。