Node.js 连接 MongoDB

一、使用 `mongodb` 驱动程序

`mongodb` 是 MongoDB 官方提供的 Node.js 驱动,能让你直接与 MongoDB 数据库交互。

1. 安装 `mongodb` 驱动

bash 复制代码
npm install mongodb

2. 连接数据库并进行操作

javascript 复制代码
const { MongoClient } = require("mongodb");

// 数据库连接 URI

const uri = "mongodb://localhost:27017";

// 数据库名称

const dbName = "myDatabase";

// 创建 MongoClient 实例

const client = new MongoClient(uri);

async function run() {

  try {

    // 连接到 MongoDB 服务器

    await client.connect();

    console.log("Connected successfully to server");

    // 选择数据库

    const db = client.db(dbName);

    // 选择集合

    const collection = db.collection("myCollection");

    // 插入一个文档

    const insertResult = await collection.insertOne({ name: "John", age: 30 });

    console.log("Inserted document =>", insertResult);

    // 查询所有文档

    const findResult = await collection.find({}).toArray();

    console.log("Found documents =>", findResult);

  } finally {

    // 关闭连接

    await client.close();

  }

}

run().catch(console.dir);

二、使用 `mongoose` 库

`mongoose` 是一个基于 `mongodb` 驱动的对象数据建模(ODM)库,提供了更高级的抽象和便捷的操作方式。

1. 安装 `mongoose`

bash 复制代码
npm install mongoose

2. 连接数据库并进行操作

javascript 复制代码
const mongoose = require("mongoose");

// 数据库连接 URI

const uri = "mongodb://localhost:27017/myDatabase";

// 连接到 MongoDB

mongoose.connect(uri, {

  useNewUrlParser: true,

  useUnifiedTopology: true,

});

// 获取数据库连接对象

const db = mongoose.connection;

// 监听连接成功事件

db.on("connected", () => {

  console.log("Connected to MongoDB");

});

// 监听连接错误事件

db.on("error", (err) => {

  console.error("MongoDB connection error:", err);

});

// 定义数据模型

const userSchema = new mongoose.Schema({

  name: String,

  age: Number,

});

const User = mongoose.model("User", userSchema);

// 创建一个新用户实例

const newUser = new User({ name: "Jane", age: 25 });

// 保存新用户到数据库

newUser

  .save()

  .then((savedUser) => {

    console.log("Saved user:", savedUser);

    // 查询所有用户

    return User.find({});

  })

  .then((users) => {

    console.log("All users:", users);

    // 关闭数据库连接

    mongoose.disconnect();

  })

  .catch((err) => {

    console.error("Error:", err);

    // 关闭数据库连接

    mongoose.disconnect();

  });
相关推荐
白衣鸽子13 分钟前
数据库高可用设计的灵魂抉择:CAP权衡
数据库·后端
DokiDoki之父1 小时前
Mybatis—入门 & (配置)SQL提示和日志输出
数据库·sql·mybatis
TDengine (老段)2 小时前
TDengine 数据函数 LN 用户手册
大数据·数据库·物联网·时序数据库·tdengine·涛思数据
机灵猫2 小时前
Redis 在订单系统中的实战应用:防重、限流与库存扣减
数据库·redis·缓存
木易2.02 小时前
从零构建RAG知识库管理系统(二)
数据库·oracle
程序新视界3 小时前
什么是MySQL JOIN查询的驱动表和被驱动表?
数据库·后端·mysql
lingggggaaaa3 小时前
小迪安全v2023学习笔记(一百三十四讲)—— Windows权限提升篇&数据库篇&MySQL&MSSQL&Oracle&自动化项目
java·数据库·windows·笔记·学习·安全·网络安全
小光学长3 小时前
基于Vue的保护动物信息管理系统r7zl6b88 (程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
前端·数据库·vue.js
Q_Q5110082853 小时前
python+django/flask婚纱摄影拍照管理系统
spring boot·python·django·flask·node.js·php
一匹电信狗3 小时前
【MySQL】数据库的相关操作
linux·运维·服务器·数据库·mysql·ubuntu·小程序