ក្រៅ​ពី​មូលដ្ឋាន​ទិន្នន័យ 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()