บทความนี้จะแนะนำการเขียนสคริปต์ JavaScript ติดต่อกับฐานข้อมูล Mongo ซึ่งจะต้องอาศัยมอดูลในการติดต่อฐานข้อมูล Mongo ในตัวอย่างที่นี่ขอแนะนำมอดูลชื่อ mongodb ซึ่งมีชื่อเดียวกันกับฐานข้อมูลเลย
เริ่มจากติดตั้งมอดูล mongodb
npm i mongodb หรือ npm install mongodb
การติดต่อฐานข้อมูล Mongo
const MongoClient = require('mongodb').MongoClient
const url = 'mongodb://localhost:27017'
const option= { useNewUrlParser: true,useUnifiedTopology: true }
const dbName = 'webphuket'
MongoClient.connect(url,option,(err, client) => {
if (err) throw err
const mongo = client.db(dbName)
console.log("Connected successfully to server")
client.close()
})
กำหนดตัวแปร MongoClient เพื่อเรียกใช้มอดูล mongodb
กำหนดตัวแปร url เพื่อกำหนด URLและ port เพื่อติดต่อฐานข้อมูล Mongo
กำหนดตัวแปร dbName เพื่อกำหนดชื่อฐานข้อมูล
จากนั้นติดต่อฐานข้อมูล Mongo ด้วย method ชื่อ connect()
การเพิ่มข้อมูล
...
...
var data = {
title : 'Product 1',
price : 1000
}
mongo.collection('products').insertOne(data, (err, r) => {
console.log('documents inserted : ',r.insertedCount)
client.close()
})
สำหรับการเพิ่มข้อมูลต้องกำหนดข้อมูลเก็บไว้ในตัวแปร data ขอยกตัวอย่างข้อมูลดังนี้ หัวข้อ title ชื่อสินค้า Product 1 และราคาสินค้า price เท่ากับ 1000 เป็นต้น
จากกำหนด Collection ที่ต้องการเพิ่มในตัวอย่างชื่อ products และใช้ method ชื่อ insertOne() เป็นการเพิ่มข้อมูลชุดเดียวกัน
และในกรณีต้องการเพิ่มข้อมูลหลายๆ ชุดในครั้งเดียว ก็สามารถใช้ method ชื่อ insertMany() ได้ดังตัวอย่าง
การเพิ่มข้อมูลหลายๆ ชุดในครั้งเดียว
...
...
var data = [
{ title : 'Product 2', price : 2000},
{ title : 'Product 3', price : 3000},
{ title : 'Product 4', price : 4000}
]
mongo.collection('products').insertMany(data, (err, r) => {
console.log('documents inserted : ',r.insertedCount)
client.close()
})
...
การแสดงข้อมูล
สำหรับการแสดงข้อมูลทั้งหมดสามารถทำได้โดยใช้ method ชื่อ find() แล้วยัดข้อมูลล
Array ซึ่งเราสามารถนำไปใช้งานต่อได้
...
...
mongo.collection('products').find().toArray((err, result) => {
console.log(result)
client.close()
})
...
ในกรณีต้องการแสดงข้อมูลเฉพาะ ก็สามารถทำได้กำหนดเงื่อนไข เช่น หากต้องการแสดงสินค้าที่มีการราคาเท่ากับ 2000 บาท ก็กำหนดให้แสดงข้อมูลดังนี้
query = { price : 2000 }
mongo.collection('products').find(query).toArray((err, result) => {
console.log(result)
client.close()
})
...
การแก้ไขข้อมูล
ในกรณีต้องการแก้ไขข้อมูล เราสามารถทำได้กำหนดชุดข้อมูลที่ต้องการแก้ไข สามารถกำหนด _id ที่ต้องการแก้ไข { _id : new MongoID.ObjectID('5d9c4eab7e4eda0b7418f0b8')
และกำหนดข้อมูลที่ต้องการแก้ไข
data = { $set: { price: 5555 }}
แล้วแก้ไขข้อมูลด้วย method ชื่อ updateOne() ซึ่งเป็นการแก้ไข 1 ชุด
...
...
const MongoID = require('mongodb').ObjectID
...
...
query = { _id : new MongoID.ObjectID('5d9c4eab7e4eda0b7418f0b8') }
data = { $set: { price: 6000 }}
mongo.collection('products').updateOne(query,data, (err, r) => {
console.log("document updated")
client.close()
})
...
การลบข้อมูล
ในกรณีที่ต้องการข้อมูลสามารถทำได้โดยกำหนด _id ที่ต้องการลบแล้วเรียกใช้ method ชื่อ deleteOne() ดังตัวอย่าง
...
...
const MongoID = require('mongodb').ObjectID
...
...
query = { _id : new MongoID.ObjectID('5d9c4eab7e4eda0b7418f0b8') }
mongo.collection('products').deleteOne(query,(err, r) => {
console.log("document deleted")
client.close()
})
...
})
สรุป
สำหรับการติดต่อฐานข้อมูล Mongo สามารถใช้งานมอดูลชื่อ mongodb โดยมี method ให้เราเลือกใช้มากมาย ตัวอย่างเช่น insertOne() ,insertMany(), find(), updateOne() , deleteOne() ซึ่งสามารถเข้าไปดูรายละเอียดเพิ่มเติมที่ https://www.npmjs.com/package/mongodb
Top comments (0)