បណ្តុំទិន្នន័យ (collection) ​នៅ​ក្នុងមូលដ្ឋាន​ទិន្នន័យ MongoDB មាន​លក្ខណៈ​ស្រដៀងនឹង​តារាង​ទិន្នន័យ​នៅក្នុង​មូលដ្ឋាន​ទិន្នន័យ MySQL ដែរ ក៏ប៉ុន្តែ​ភាព​ខុសគ្នា​ស្ថិតនៅ​ត្រង់​ថា បណ្តុំ​ទិន្នន័យ​ MongoDB ត្រូវ​បាន​ប្រើប្រាស់​សំរាប់​តែ​រក្សា​នូវ​ទិន្នន័យ​ទាំងឡាយណា​ដែល​មាន​លក្ខណៈ​ជា​វត្ថុ​ JSON តែ​ប៉ុណ្ណោះ​។ ចំណែក​ឯ​តារាង MySQL វិញ​ត្រូវ​បាន​ប្រើប្រាស់​សំរាប់​រក្សាទុកទិន្នន័យ​ផ្សេង​ៗ​ស្ថិត​ក្នុង​ប្រភេទ​ដ៏​ច្បាស់​លាស់ ដែល​ត្រូវ​បានកំណត់​ទុក​ជាមុន​។ អាស្រ័យហេតុនេះ ទិន្នន័យ​ដែលមានប្រភេទ​ខុស​ពី​ប្រភេទ​ដែលត្រូវ​បាន​កំណត់នៅ​ក្នុង​តារាង MySQL នឹង​មិន​អាចត្រូវ​បញ្ចូល​ទៅ​ក្នុង​តារាង​​នោះ​បានឡើយ​។ ចំពោះ​បណ្តុំទិន្នន័យ MongoDB វិញ ក្រោយ​ពី​ត្រូវ​បាន​បង្កើត​រួច​ហើយ អាច​ត្រូវ​យកទៅ​ប្រើប្រាស់​សំរាប់​រក្សាទុក​នូវ​ទិន្នន័យ​ប្រភេទ​ណាក៏​បានដែរ​ អោយ​តែ​ទិន្នន័យ​ទាំងនោះមានទំរង់​ជា​វត្ថុ JSON ។

 

យ៉ាងណាម៉ីញ ដើម្បី​បង្កើត​បណ្តុំ​ទិន្នន័យ 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}`)
})

 

/* ./routes/index.js */
import express from 'express'
import func from '../models/mongodb.js'
const index = express.Router()

index.use(func)

index.get('/',(req,res)=>{
    res.render('base',req.data)
})
 
export default index

 

//models/mongodb.js

function func(req,res,next){
    req.mydb.createCollection("users", function(err, result) {
        if (err) throw err
        req.data = {}
        req.data.message = `Users collection was created!`
        next()
    })
}

export default func