# Nodejs 链接 mongodb

TIP

安装依赖: yarn add mongodb -S

当前安装版本是 4.3.1

# 链接示例代码

const MongodbClient = require("mongodb").MongoClient;

// 默认端口27017
const url = "mongodb://localhost:27017";

// 数据库名称
const dbName = "blog";

MongodbClient.connect(
  url,
  {
    // 配置信息
  },
  (err, client) => {
    if (err) {
      console.log(`mongodb connect error ${err}`);
      return;
    }

    // 无报错链接成功
    console.log(`mongodb connect success`);

    // 切换到数据库(控制台 use 数据库名)
    const db = client.db(dbName);

    // 这里使用关闭链接是为了走一个全流程,实际情况下是不需要做关闭处理的
    // 关闭链接
    client.close();
  }
);

# 添加增删改查功能

const MongodbClient = require("mongodb").MongoClient;

// 默认端口27017
const url = "mongodb://localhost:27017";

// 数据库名称
const dbName = "blog";

MongodbClient.connect(
  url,
  {
    // 配置信息
  },
  (err, client) => {
    if (err) {
      console.log(`mongodb connect error ${err}`);
      return;
    }

    // 无报错链接成功
    console.log(`mongodb connect success`);

    // 切换到数据库(控制台 use 数据库名)
    const db = client.db(dbName);

    // 使用集合
    const userCollection = db.collection("users");

    // 新增
    userCollection.insertOne(
      {
        username: "wangwu",
        password: "12345678",
        relname: "王五",
      },
      (err, result) => {
        if (err) {
          console.log(`users insertOne err ${err}`);
          return;
        }

        console.log(`insertOne result ${result}`);
      }
    );

    // 修改
    userCollection.updateOne(
      { username: "wangwu" },
      { $set: { relname: "王五新名" } },
      (err, result) => {
        if (err) {
          console.log(`users updateOne err ${err}`);
          return;
        }

        console.log(`updateOne result ${result}`);
      }
    );

    // 删除
    userCollection.deleteOne({ username: "wangwu" }, (err, result) => {
      if (err) {
        console.log(`users deleteOne err ${err}`);
        return;
      }

      console.log(`deleteOne result ${result}`);
    });

    // 执行查询
    userCollection
      .find({
        // username: "zhangsan", 条件
      })
      .toArray((err, result) => {
        if (err) {
          console.log(`users finid err ${err}`);
          return;
        }

        console.log(result);

        // 查询链接是一个异步,所以关闭链接要放到内部
        client.close();
      });
  }
);