ក្រៅពីមូលដ្ឋានទិន្នន័យ MySQL នៅមានមូលដ្ឋានទិន្នន័យ MongoDB មួយទៀតដែលកំពុងពេញនិយម និងត្រូវបានគេទៅប្រើនៅទូទាំងពិភពលោក។ បើប្រៀបធៀបទៅនឹង MySQL មូលដ្ឋានទិន្នន័យ MongoDB មានលក្ខណៈងាយស្រួលប្រើជាទីបំផុត ជាពិសេសសំរាប់បណ្តាអ្នកសរសេរកម្មវិធី Node.js ព្រោះមូលដ្ឋានទិន្នន័យចុងក្រោយនេះ មិនទាមទារអោយយើងប្រើប្រាស់ភាសា SQL ក្នុងការបញ្ចេញបញ្ចូលនិងឬកែប្រែទិន្នន័យឡើយ។ ពោលគឺរាល់ទិន្នន័យដែលត្រូវរក្សាទុកនៅក្នុងមូលដ្ឋានទិន្នន័យ MongoDB មានសណ្ឋានជាវត្ថុ JSON សុទ្ធសាទ។
ដើម្បីអាចប្រើប្រាស់មូលដ្ឋានទិន្នន័យ MongoDB បាន យើងចាំបាច់ត្រូវទាញយកផ្នែកទន់ MongoDB មកតំលើងនៅក្នុងកំព្យូទ័ររបស់យើង ដោយចូលទៅកាន់អាស័យដ្ឋាននេះ https://www.mongodb.com/download-center/community ។
ក្រោយពីតំលើងផ្នែកទន់ MongoDB យើងចាំបាច់ត្រូវតំឡើងសាស្ត្រា mongodb មួយទៀត សំរាប់ភ្ជាប់ទំនាក់ទំនងរវាងកម្មវិធី Node.js ទៅនឹងមូលដ្ឋានទិន្នន័យ MongoDB ។ ហើយដើម្បីតំលើងសាស្ត្រា mongodb នេះ យើងគ្រាន់តែសរសេរថា npm install mongodb នៅលើបង្អួចខ្មៅគឺជាការស្រេច។
npm install mongodb
បន្ទាប់មកទៀត ដើម្បីបង្កើតមូលដ្ឋានទិន្នន័យដាច់ដោយឡែកមួយ នៅក្នុងមូលដ្ឋានទិន្នន័យ MongoDB យើងត្រូវធ្វើដូចខាងក្រោមនេះ៖
import express from 'express'
import path from 'path'
const app = express()
const port = process.env.PORT || 3000
const __dirname = path.resolve()
import index from './routes/index.js'
import backend from './routes/backend.js'
import mydb from './models/connectMongoDB.js'
app.use('/',async function(req,res,next){
req.mydb = await mydb
req.__dirname = __dirname
next()
})
app.set('views', path.join(__dirname, 'views'))
app.set('view engine', 'ejs')
app.use(express.static(path.join(__dirname, 'public')))
app.use(express.urlencoded({extended:false}))
app.use(express.json())
app.use('/',index)
app.use('/backend',backend)
app.listen(port,function(){
console.log(`This application is listening to the port: ${port}`)
})
//models/connectMongoDB.js
import mongodb from 'mongodb'
const mymongo = mongodb.MongoClient
const url = "mongodb://localhost:27017/mydb"
let resultPromise = new Promise(function(resolve,reject){
mymongo.connect(url, {useUnifiedTopology:true}, function(err, db){
if (err) throw err
const mydb = db.db("mydb")
if(mydb){
resolve(mydb)
console.log('Connected to the main database!!')
}else{
reject("Error occured!")
}
})
})
async function awaitPromise(){
let mydb = await resultPromise
return mydb
}
export default awaitPromise()