MongoDB的下载启动(Windows),配合Node.js和Express搭建成的后台服务器进行简单使用。

一、什么是MongoDB?

MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案

MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似jsonbson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。

二、MongoDB的下载解压

官网下载地址:Download MongoDB Community Server | MongoDB

通过点击Select package选择包的版本。

Version 选择:稳定版4.4.28
Mongo的版本分为稳定版和开发版,其中,稳定版是经过充分测试的版本,具有稳定性和可靠性;而开发版是未得到充分测试的版本,不适合初学者。所以我选择的稳定版本4.4.28。稳定版与开发版区分在于版本号(类似于x.y.z),版本号中的第一位数字是主版本号;第二位数字是用于区分是稳定版还是开发版,偶数为稳定版,奇数为开发版;第三位数字为修订号。版本自行选择。

Package选择:ZIP
基于Windows平台的安装包打包方式有两种,分别是MSI和ZIP,MSI安装包需要进行安装,而ZIP安装包只需要解压就可以使用。

解压MongoDB安装包到自己创建的MongoDB文件夹中。通常建议将MongoDB的数据文件和日志文件与项目所在的磁盘分开,比如我自己创建的项目放在C盘,MongoDB文件夹就放在D盘。

因为将MongoDB文件夹与项目放在同一个磁盘可能会导致一些潜在的问题:

  1. 磁盘空间限制:当项目生成大量数据时,MongoDB的数据文件可能会占用较多的磁盘空间。如果MongoDB的数据文件和项目所在的磁盘共享相同的空间,可能会影响到项目的正常运行。

  2. 性能影响:MongoDB的读写操作可能会对磁盘进行频繁的访问。如果MongoDB的数据文件和项目文件共享相同的磁盘,可能会导致磁盘I/O竞争,从而影响系统的性能。

三、启动MongoDB服务

使用命令行参数的方式启动MongoDB服务

这里我们需要创建一个和bin目录同级的data文件夹。并在data文件夹下创建db和logs子文件夹,其中db文件夹用于储存数据库文件,logs文件夹用于储存日志文件(便于在日志文件中查看MongoDB相关使用信息,不然关闭命令行窗口后,将无法再次查看MongoDB的日志。注意这是Package选择ZIP必须要做的,选择MSI的话不用,人家自带

在MongoDB的bin文件夹下打开命令行窗口。即进入bin文件夹,在路径栏中输入cmd提示符,再按Enter键,在当前路径下打开命令行窗口。

进入命令窗口栏后输入mongod --dbpath=..\data\db

启动之后可以看到MongoDB的默认端口是27017

在浏览器中输入: localhost:27017

得到如下图所示提示就能证明MongoDB启动成功

在命令行窗口按Ctrl+C结束以上命令

然后输入mongod --logpath=..\data\logs\mongodb.log

可以快捷创建mongodb.log日志文件,查看logs文件夹的子文件中出现mongodb.log文件即为创建成功

四、Node.js和Express搭建的后台服务器框架连接MongoDB数据库

在 Express.js 中连接 MongoDB 数据库并进行操作通常需要使用第三方库,其中最流行的是 mongoose。mongoose 是一个 MongoDB 对象模型工具,它提供了直观的、基于模式的操作,让开发者更容易与 MongoDB 数据库进行交互。以下是连接 MongoDB 数据库并在 Express.js 中使用 mongoose 的详细讲解:

1. 安装 mongoose:
首先,你需要通过 npm 安装 mongoose:

npm install mongoose


2. 连接 MongoDB 数据库:
在 Express.js 应用中,你可以使用 mongoose 来连接到 MongoDB 数据库。在你的 Express 应用中,你可以创建一个单独的模块来处理数据库连接。以下是一个例子:

// db.js

const mongoose = require('mongoose');

const connectDB = async () => {
  try {
    await mongoose.connect('mongodb://localhost:27017/your-database-name', {
      useNewUrlParser: true,
      useUnifiedTopology: true,
    });
    console.log('MongoDB Connected');
  } catch (error) {
    console.error('Error connecting to MongoDB:', error);
  }
};

module.exports = connectDB;

然后在你的 Express 应用中引入并调用 connectDB 函数:

// app.js

const express = require('express');
const connectDB = require('./db');

const app = express();
const port = 3000;

// 连接到 MongoDB 数据库
connectDB();

app.get('/', (req, res) => {
  res.send('Hello, Express with MongoDB!');
});

app.listen(port, () => {
  console.log(`Server is running at http://localhost:${port}`);
});


3. 定义模型和创建文档:
mongoose 允许你定义模型来映射数据库中的集合。以下是一个例子,展示了如何在 Express.js 中定义模型、创建文档并保存到数据库:

// models/User.js

const mongoose = require('mongoose');

const userSchema = new mongoose.Schema({
  name: String,
  email: String,
});

const User = mongoose.model('User', userSchema);

module.exports = User;

在你的 Express 应用中引入这个模型并使用它:

// app.js

const express = require('express');
const connectDB = require('./db');
const User = require('./models/User');

const app = express();
const port = 3000;

// 连接到 MongoDB 数据库
connectDB();

app.get('/create-user', async (req, res) => {
  // 创建一个用户文档
  const newUser = new User({
    name: 'John Doe',
    email: 'john@example.com',
  });

  try {
    // 保存到数据库
    const savedUser = await newUser.save();
    res.json(savedUser);
  } catch (error) {
    res.status(500).json({ error: 'Error creating user' });
  }
});

app.listen(port, () => {
  console.log(`Server is running at http://localhost:${port}`);
});


4. 查询数据:
可以使用 mongoose 提供的 API 来查询数据库中的数据。以下是一个例子,展示了如何在 Express.js 中查询用户数据:

// app.js

const express = require('express');
const connectDB = require('./db');
const User = require('./models/User');

const app = express();
const port = 3000;

// 连接到 MongoDB 数据库
connectDB();

app.get('/get-users', async (req, res) => {
  try {
    // 查询所有用户
    const users = await User.find();
    res.json(users);
  } catch (error) {
    res.status(500).json({ error: 'Error fetching users' });
  }
});

app.listen(port, () => {
  console.log(`Server is running at http://localhost:${port}`);
});

按顺序放下来大致就是如下图:


这只是 mongoose 的一些基础用法。还有更高级的操作,比如数据验证、中间件、聚合管道等。要玩花样还是得看Mongoose 官方文档。

  • 17
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
MongoDBNode.js可以很好地配合使用MongoDB是一个非关系型数据库,而Node.js是一个基于JavaScript的服务器端运行环境。 要在Node.js使用MongoDB,首先需要安装MongoDB驱动程序。最流行的驱动程序是官方提供的`mongodb`驱动程序,可以通过npm进行安装。 ```bash npm install mongodb ``` 安装完驱动程序后,可以在Node.js使用以下代码连接到MongoDB数据库,并进行数据操作: ```javascript const MongoClient = require('mongodb').MongoClient; // 连接URL const url = 'mongodb://localhost:27017'; // 数据库名称 const dbName = 'mydatabase'; // 连接到MongoDB数据库 MongoClient.connect(url, function(err, client) { if (err) { console.log(err); return; } console.log('Connected successfully to server'); const db = client.db(dbName); // 在集合中插入一条数据 const collection = db.collection('mycollection'); collection.insertOne({ name: 'John', age: 30 }, function(err, result) { if (err) { console.log(err); return; } console.log('Inserted document:', result.ops[0]); client.close(); }); }); ``` 以上代码首先创建了一个`MongoClient`对象,然后使用`connect`方法连接到数据库。连接功后,可以通过`db.collection`方法获取集合对象,并使用`insertOne`方法插入一条数据。 除了插入数据,还可以使用其他方法如`find`、`updateOne`、`deleteOne`等来进行查询、更新和删除操作。 MongoDB还支持更高级的查询操作,如聚合管道、索引等。你可以查阅官方文档或其他资源来学习更多有关MongoDBNode.js中的使用方式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值