加入收藏 | 设为首页 | 会员中心 | 我要投稿 厦门网 (https://www.xiamenwang.cn/)- 数据采集、建站、AI开发硬件、专属主机、云硬盘!
当前位置: 首页 > 教程 > 正文

如何将Node与MongoDB进行连接

发布时间:2023-09-06 10:39:08 所属栏目:教程 来源:未知
导读:   本篇内容主要讲解“怎么使用Node连接mongodb”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用Node连接mongodb
  本篇内容主要讲解“怎么使用Node连接mongodb”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用Node连接mongodb”吧!
 
  Mongoose 是一个 Node.js 包,提供了一个使用 mongo 数据库的接口。在应用程序中使用它是非常轻量级的 npm 包。 Mongoose 拥有所有方法集,可以连接和访问存储在 Mongo 数据库中的数据。
 
  react-giant:一个react+next.js+mongodb的学习项目。
 
  安装Mongoose库
 
  这是 Node.js 项目开发必须的步骤之一,使用 npm 命令进行安装,在终端输入以下命令即可安装:
 
  npm install mongoose --save
 
  连接 MongoDB
 
  通常在使用数据库的时候,都需要先建立连接,通过以下方式建立连接:
 
  const mongoose = require("mongoose");
 
  const connectDb = async () => {
 
      await mongoose.connect("mongodb://localhost:27017/admin");
 
  };
 
  connectDb();
 
  在上面的代码中,mongoose.connect() 函数用于建立到MongoDB的连接。第一个参数指定了MongoDB的连接URL,格式为 mongodb://<host>:<port>/<database-name>?<options>,其中<host> 指定MongoDB所在的主机名或IP地址,<port>指定MongoDB的端口号,<database-name> 指定要连接的数据库的名称,<options>是一些配置项,以参数的方式传递,如 ?useNewUrlParser=true&useUnifiedTopology=true。对于需要用户名和密码连接的数据库,则<host>参数方式为 username:password@127.0.0.1:27017。
 
  需要注意的是,mongoose 不同版本连接方式上有点区别,上述代码是在版本 7.0.2 可以正常使用。
 
  定义模型和模式
 
  在使用 Mongoose 时,通常需要先定义一个模型和对应的模式。模型是指 MongoDB 中的一个集合,而模式则指定了集合中每个文档的结构和字段。以下是一个简单的模式定义示例:
 
  const mongoose = require("mongoose");
 
  const userSchema = new mongoose.Schema({
 
      username: {
 
          type: String,
 
          required: true,
 
      },
 
      email: {
 
          type: String,
 
          required: true,
 
          unique: true,
 
          maxlength: [255, "Email length must be at most 255"],
 
      },
 
      ip: {
 
          type: String,
 
          required: true,
 
      },
 
  });
 
  const User = mongoose.model("User", userSchema);
 
  CRUD操作
 
  在定义了模型和模式之后,就可以使用模型进行 CRUD(创建、读取、更新、删除)操作。以下是一些常用的示例代码:
 
  const mongoose = require("mongoose");
 
  // 创建记录
 
  async function createUsers() {
 
      const result = await User.create({
 
          username: "Quintion",
 
          email: "quintiontang@gmail.com",
 
          ip: "127.0.0.1",
 
      });
 
      return result;
 
  }
 
  // 查询文档列表
 
  async function getUsers() {
 
      const users = await User.find();
 
      return users;
 
  }
 
  // 查询单个
 
  async function getUser() {
 
      const user = await User.find({
 
          username: "Quintion",
 
      });
 
      return user;
 
  }
 
  // 删除记录
 
  async function deleteUser() {
 
      return await User.remove({
 
          username: "Quintion",
 
      });
 
  }
 

(编辑:厦门网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章