Skip to content

MongoDB 数据库操作

Node.js 中操作 MongoDB 数据库

在 Node.js 中,可以通过 mongodb 官方驱动(mongodb 包)来连接和操作 MongoDB 数据库。mongodb 包提供了与 MongoDB 数据库进行交互的能力,包括连接数据库、执行操作等。

Node.js 中的 mongodb 模块

首先,你需要安装 mongodb 模块:

bash
npm install mongodb

安装完成后,你可以在代码中引入并使用 mongodb 模块来连接数据库。

基本使用示例:

javascript
const { MongoClient } = require('mongodb');

// MongoDB 连接 URI
const url = 'mongodb://localhost:27017';
const dbName = 'test_db';

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

async function connectDB() {
  try {
    // 连接数据库
    await client.connect();
    console.log('连接成功');

    const db = client.db(dbName);
    const collection = db.collection('users');

    // 在此进行数据库操作,例如增、删、查、改

  } catch (err) {
    console.error('连接失败:', err);
  }
}

connectDB();

Node.js 中对 MongoDB 实现增删改查操作

在 MongoDB 中,数据存储在“集合”中,类似于关系型数据库中的“表”。以下是如何在 Node.js 中使用 MongoDB 驱动执行增、删、查、改操作的示例。

插入数据(Insert)

示例:插入一条记录到 users 集合中。

javascript
async function insertData() {
  try {
    const collection = client.db(dbName).collection('users');
    const result = await collection.insertOne({ name: 'John Doe', age: 30 });
    console.log('插入成功,插入的 ID:', result.insertedId);
  } catch (err) {
    console.error('插入失败:', err);
  }
}

插入多条记录:

javascript
async function insertMultipleData() {
  try {
    const collection = client.db(dbName).collection('users');
    const result = await collection.insertMany([
      { name: 'Jane Doe', age: 25 },
      { name: 'Sam Smith', age: 40 }
    ]);
    console.log('插入成功,插入的 ID:', result.insertedIds);
  } catch (err) {
    console.error('插入失败:', err);
  }
}

查询数据(Find)

查询所有文档:

javascript
async function findData() {
  try {
    const collection = client.db(dbName).collection('users');
    const users = await collection.find().toArray();
    console.log('查询结果:', users);
  } catch (err) {
    console.error('查询失败:', err);
  }
}

查询特定条件的数据:

javascript
async function findUserByName() {
  try {
    const collection = client.db(dbName).collection('users');
    const user = await collection.findOne({ name: 'John Doe' });
    console.log('查询结果:', user);
  } catch (err) {
    console.error('查询失败:', err);
  }
}

更新数据(Update)

更新单条数据:

javascript
async function updateData() {
  try {
    const collection = client.db(dbName).collection('users');
    const result = await collection.updateOne(
      { name: 'John Doe' }, // 查找条件
      { $set: { age: 31 } } // 更新内容
    );
    console.log('更新成功,受影响的文档数量:', result.modifiedCount);
  } catch (err) {
    console.error('更新失败:', err);
  }
}

更新多条数据:

javascript
async function updateMultipleData() {
  try {
    const collection = client.db(dbName).collection('users');
    const result = await collection.updateMany(
      { age: { $lt: 30 } }, // 查找条件
      { $set: { status: 'active' } } // 更新内容
    );
    console.log('更新成功,受影响的文档数量:', result.modifiedCount);
  } catch (err) {
    console.error('更新失败:', err);
  }
}

删除数据(Delete)

删除单条数据:

javascript
async function deleteData() {
  try {
    const collection = client.db(dbName).collection('users');
    const result = await collection.deleteOne({ name: 'John Doe' });
    console.log('删除成功,删除的文档数量:', result.deletedCount);
  } catch (err) {
    console.error('删除失败:', err);
  }
}

删除多条数据:

javascript
async function deleteMultipleData() {
  try {
    const collection = client.db(dbName).collection('users');
    const result = await collection.deleteMany({ age: { $gt: 30 } });
    console.log('删除成功,删除的文档数量:', result.deletedCount);
  } catch (err) {
    console.error('删除失败:', err);
  }
}

关闭数据库连接

在操作完成后,可以关闭数据库连接以释放资源。

javascript
async function closeConnection() {
  try {
    await client.close();
    console.log('连接已关闭');
  } catch (err) {
    console.error('关闭连接失败:', err);
  }
}
编程洪同学服务平台是一个广泛收集编程相关内容和资源,旨在满足编程爱好者和专业开发人员的需求的网站。无论您是初学者还是经验丰富的开发者,都可以在这里找到有用的信息和资料,我们将助您提升编程技能和知识。
专业开发
高端定制
售后无忧
站内资源均为本站制作或收集于互联网等平台,如有侵权,请第一时间联系本站,敬请谅解!本站资源仅限于学习与参考,严禁用于各种非法活动,否则后果自行负责,本站概不承担!