使用Node.js + Express + MongoDB的CRUD综合
首先
mongoDB是一种非SQL数据库,与MySQL等关系型数据库不同,它存储的是基于JSON结构的数据。作为一个云数据库,mongoDB具有在不改变环境的情况下进行开发的优点,同时也适合个人轻松拥有自己的数据库。这里使用nodejs + mongoDB简单地使用Postman总结了基本的CRUD(创建、读取、更新、删除)操作。
Paraphrase in Chinese:
邮递员的参考
环境
MongoDB 4.12.1,Windows 10,Express 4.18.2。
蒙古数据库
连接您的应用程序 de
我在nodejs-work-request中创建了一个名为Database的数据库,并在里面创建了一个名为users的集合。
我会创建一条数据并将其插入到”INSERT DOCUMENT”中。
在数据库访问中添加新的数据库用户
需要设置用于连接数据库的ID和密码。
CRUD(增删改查)
基本设置
const express = require('express');
const app = express();
const { ObjectID } = require('bson');
require('dotenv').config()
app.use(express.json());
var db
const MongoClient = require('mongodb').MongoClient
MongoClient.connect(`mongodb+srv://${process.env.MONGODB_ID}:${process.env.MONGODB_PASSWORD}@cluster0.akash.mongodb.net/?retryWrites=true&w=majority`, function (err, client) {
if (err) return console.log(err)
db = client.db('nodejs-work-request')
app.listen(8080, function () {
console.log('listening on 8080')
})
})
//この下にCRUD
在这里,我们将其保存在.env文件中,
输入刚刚设置的数据库访问用户的ID和密码,而不是{process.env.MONGODB_ID},{process.env.MONGODB_PASSWORD}。
阅读
app.get('/users/:id', function (req, res) {
// (req.params.idはStringなので、ObjectIDとして変換します。
db.collection('users').findOne({_id: ObjectID(req.params.id)}, (err, result) => {
res.send(result)
})
})
创建
app.post('/users', function (req, res) {
db.collection('users').insertOne({ user_name: req.body.user_name, age: req.body.age })
res.send('saved')
})
更新
app.put('/users', function (req, res) {
db.collection('users').updateOne({ _id: ObjectID(req.body.id) },
{ $set: { user_name: req.body.user_name, age: req.body.age } },
function (err, result) {
res.send('update done')
})
})
删除
app.delete('/users', function(req, res) {
db.collection('users').deleteOne({_id: ObjectID(req.body.id)}, function(err, result) {
res.send('delete done')
})
})
总结
可以说,尽管MYSQL的使用率明显更高,但在个人开发和学习方面,使用云数据库而无需拥有服务器的方式确实具有很多优势。而且,在部署服务器时,可以自行管理数据库。然而,由于它是NonSQL数据库,因此可能需要一些技巧才能以与以前使用JOIN一样简单地获取和汇总数据。