当前位置: 首页 > news >正文

Node.js 连接 MongoDB

一、使用 `mongodb` 驱动程序

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

1. 安装 `mongodb` 驱动

npm install mongodb

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

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`

npm install mongoose

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

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();

  });

相关文章:

  • C# 封送和远程编程介绍
  • 如何动态修改第三方组件库的内部样式
  • Golang GORM系列:GORM事务及错误处理
  • Flutter_学习记录_数据更新的学习
  • call、apply、bind 详解
  • Windows 图形显示驱动开发-WDDM的优势和迁移
  • 03-微服务01(服务拆分、RestTemplate,nacos、OpenFeign、日志)
  • 区块链中的数字签名:安全性与可信度的核心
  • 小程序之间实现互相跳转的逻辑
  • 详解Cookie和Session
  • DeepseeK自动写作,自动将回答导出文档
  • 小米 R3G 路由器(Pandavan)实现网络打印机功能
  • LINUX常用命令学习
  • vue开发06:前端通过webpack配置代理处理跨域问题
  • Linux 共享内存
  • Python教程108:针对面向对象Class类知识要点,源码示例再演示
  • Qt的QTreeWidge的使用
  • 从技术债务到架构升级,滴滴国际化外卖的变革
  • MySQL错误-this is incompatible with sql_mode=only_full_group_by完美解决方案
  • 大模型的未来已来
  • 导购网站怎么建/今日重大新闻
  • 怎么做便民信息网站/离我最近的广告公司
  • adobe dreamweaver cs6/陕西seo主管
  • 建设培训网站建设/上海自媒体推广
  • 网站建设佰首选金手指二八/app引导页模板html
  • 龙华新区网站制作/拍照搜索百度识图