在Node.js中使用MongoDB

124 阅读1分钟

一. 安装Mongoose

在node.js中使用MongoDB,可以使用mongoose这个流行的npm包.

Mongoose文档

npm install mongoose

二. 连接到MongoDB数据库

在使用Mongoose之前,需要先连接到MongoDB数据库。

首先启动mongoDB数据库,在命令行中输入

mongod

使用mongoose

const mongoose = require('mongoose');

// 连接URL和数据库名称
const url = 'mongodb://127.0.0.1:27017';
const dbName = 'users';

// 连接到MongoDB数据库
mongoose.connect(`${url}/${dbName}`, { useNewUrlParser: true, useUnifiedTopology: true })
  .then(() => {
    console.log('Connected to MongoDB');
    // 执行数据库操作
    // ...
  })
  .catch((error) => {
    console.error('Failed to connect to MongoDB:', error);
  });

变量dbName为自己要连接的数据库名称,并根据需要修改连接URL中的主机和端口。

三. 定义模式和模型

使用Mongoose,可以定义模式和模型来映射数据库中的集合和文档。以下是一个示例:

const mongoose = require('mongoose');

// 定义模式
const userSchema = new mongoose.Schema({
  name: { type: String, required: true },
  age: { type: Number, default: 0 },
});

// 创建模型
const User = mongoose.model('User', userSchema);

在上面的示例中,我们定义了一个名为User的模型,它具有nameage字段。name字段是必需的,age字段具有默认值0。

四. 执行数据库操作

一旦成功连接到MongoDB并定义了模型,可以使用Mongoose执行各种数据库操作CURD。

4.1 创建文档

const user = new User({ name: 'John Doe', age: 30 });
user.save()
  .then((result) => {
    console.log('Document created:', result);
  })
  .catch((error) => {
    console.error('Failed to create document:', error);
  });

4.2 查询文档

User.find()
  .then((documents) => {
    console.log('Documents:', documents);
  })
  .catch((error) => {
    console.error('Failed to fetch documents:', error);
  });

User.findOne({ name: 'John Doe' })
  .then((document) => {
    console.log('Document:', document);
  })
  .catch((error) => {
    console.error('Failed to fetch document:', error);
  });

4.3 更新文档

User.updateOne({ name: 'John Doe' }, { age: 35 })
  .then((result) => {
    console.log('Document updated:', result);
  })
  .catch((error) => {
    console.error('Failed to update document:', error);
  });

4.4 删除文档

User.deleteOne({ name: 'John Doe' })
  .then((result) => {
    console.log('Document deleted:', result);
  })
  .catch((error) => {
    console.error('Failed to delete document:', error);
  });