mongodb

MongoDB กับ Query และ คำย่อของเครื่องหมายพื้นฐาน

mongodb

MongoDB คือ document-oriented database ซึ่งไม่เหมือนฐานข้อมูลแบบเดิมที่เราเคยใช้งานกันมา มีข้อดีเรื่องการรองรับขนาดของข้อมูลได้แบบมหาศาล ดังนั้นเรื่องคำสั่งแน่นอนว่าต้องมีเอกลักษณ์เฉพาะของมันเองด้วยเช่นกัน และสิ่งที่เป็นรูปแบบมาตรฐานคือเรื่องเครื่องหมายที่มีรูปแบบเป็นของตัว MongoDB เอง

 ตัวอย่างที่ไปพบเจอ

db.example.find({'age':{$gt:33,$lte:40}})})




เกิดความสงสัยว่าตัวแปร $gt,$lte คืออะไรและมีความหมายว่าอย่างไร ไปตามค้นหาจนไปเจอ document ของ MongoDB บอกไว้ว่าถ้าต้องการจะใส่เงื่อนไขในการค้นหาข้อมูลก็ให้ใช้ ตัวแปรเหล่านี้แทนเพื่อที่ MongoDB เองจะอ่านเข้าใจและไปค้นหาข้อมูลมาให้ได้ถูก

เครื่องหมายใช้สำหรับเปรียบเทียบ

ชื่อ คำอธิบาย เปรียบได้กับ ตัวอย่าง
$eq  เปรียบเทียบคอลัมน์ที่มีค่าเท่ากับ ค่าที่ระบุ ==
db.example.find( { col1: { $eq: 20 } } )
 $gt  เปรียบเทียบคอลัมน์ที่มีค่าที่มากกว่า ค่าที่ระบุ >
db.example.find( { col1: { $gt: 20 } } )
 $gte  เปรียบเทียบคอลัมน์ที่มีค่าที่มากกว่าหรือเท่ากับ ค่าที่ระบุ >=
db.example.find( { col1: { $gte: 20 } } )
$lt  เปรียบเทียบคอลัมน์ที่มีค่าน้อยกว่า ค่าที่ระบุ  <
db.example.find( { col1: { $lt: 20 } } )
$lte  เปรียบเทียบคอลัมน์ที่มีค่าที่น้อยกว่าหรือเท่ากับ ค่าที่ระบุ  <=
db.example.find( { col1: { $lte: 20 } } )
$ne เปรียบเทียบคอลัมน์ที่มีค่าทั้งหมดที่มีไม่เท่ากับค่าที่ระบุ !=
db.example.find( { col1: { $ne: 20 } } )
$in เปรียบเทียบคอลัมน์ที่มีค่าตรงกับค่าใด ๆ ที่ระบุไว้ในอาร์เรย์ == []
db.example.find( { col1: { $in: [10,20] } } )
$nin เปรียบเทียบคอลัมน์ที่มีค่าไม่ตรงกับค่าที่ระบุในอาร์เรย์ !=[]
db.example.find( { col1: { $nin: [10,20] } } )

เครื่องหมายที่ใช้เชิงตรรกะ

ชื่อ คำอธิบาย เปรียบได้กับ ตัวอย่าง
$or เปรียบเทียบแบบเลือกอย่างใดอย่างหนึ่ง OR || หรือ
db.example.find( { 
$or: [ { quantity: { $lt: 20 } }, { price: 10 } ] 
} )
$and  เปรียบเทียบแบบจำเป็นต้องเลือกข้อมูลที่เข้าเงื่อนไขทั้งหมด AND || และ
db.example.find( { 
$and: [ { price: { $ne: 1.99 } }, { price: { $exists: true } 
} ]
$not   เปรียบเทียบแบบต้องการข้อมูลที่ไม่เข้าเงือนไขทั้งหมด NOT || ไม่ต้องการ
db.example.find( { 
price: { $not: { $gt: 1.99 } } 
} )
$nor  เปรียบเทียบแบบข้อมูลทั้งหมดที่ไม่ตรงกับคำสั่งทั้งสอง NOR || ไม่ต้องการ
db.example.find( { 
$nor: [ { price: 1.99 }, { sale: true } ] 
} )




นอกจากนี้ยังมีพวก เปรียบเทียบ Element,Evaluation,Geospatial,Array และคอมเม้นคำอธิบาย Comments ข้อมูเหล่านี้สามารถไปเข้าไป API Document ของ MongoDB ได้เพิ่มเติมจาก docs.mongodb.org

เริ่มการติดตั้ง MongoDB เบื้องต้น

MongoDB คืออะไร

MongoDB เป็น database แบบ NoSQL ก็กำเนิดเกิดขึ้นเมื่อ ปี 2541  โดยนาย Carlo Strozzi ให้นิยามของ MongoDB นี้ว่า

เป็นระบบ database ที่ทำงานโดยมีความสัมพันธ์กัน(relational) แต่ว่าทำงานได้เบากว่ามาก และไม่ได้ใช้ภาษา SQL ในการทำงาน

ข้อดี-ข้อเสีย MongoDB

  • เก็บข้อมูลแบบ Document – คือการเก็บข้อมูลในรูปแบบที่เป็น Pattern แบบมีโครงสร้าง (แตกต่างกับ Mysql ที่เก็บข้อมูลแบบหลายมิติ แต่ MongoDB จะเก็บข้อมูล แบบ Array คือจะเป็นแบบมิติเดียว)
  • รองรับการทำ Full Index – มีข้อดีในการ search หาได้อย่างรวดเร็วกับข้อมูลที่มีปริมาณมหาศาล
  • รองรับ การขยายขนาด และ รองรับการทำงานหนักๆ – เพราะว่าเน้นรองรับงานหนัก และ ปริมาณข้อมูลมากๆ สามารถขยายขนาดได้อย่าวรวดเร็ว
  • ทำระบบสำรองได้ง่าย – เราสามารถเพิ่มระบบเพื่อทำงานเป็นตัวหลัก ตัวรอง หรือว่า เป็นหลายๆตัวช่วยกันทำงาน ได้อย่างง่ายๆ ไม่ต้องตั้งค่าอะไรเยอะแยะ
  • การเรียกข้อมูลมากแสดง – อย่างที่บอกว่า เป็นการเก็บข้อมูลแบบโครงสร้าง ดังนั้นเวลาเรียกข้อมูลมาแสดงก็จะได้ทั้งโครงสร้างของข้อมูลออกมาเลย
  • แก้ไขข้อมูลได้รวดเร็ว – หากเราใช้ MySQL แล้วศึกษาลึกๆ จะพบว่าการ query update จะทำให้ตารางนั้น lock จังหวะที่ update แต่ว่า MongoDB ไม่เป็นอย่างนั้น
  • เขียนชุดคำสั่งการทำงานได้ – หากเรามีการทำงานหลายขั้นตอน แบบซ้ำๆ เมื่อเกิดการทำงานในลักษณะแบบใด เราก็จัดกลุ่มคำสั่งที่ทำซ้ำๆแล้วเขียนเหมือนเป็น script เอาไว้เลย เวลานันก็รันทั้งก้อนนี้เลย
  • เก็บข้อมูลด้วยระบบ GridFS – เป็นระบบการเก็บไฟล์บนพื้นที่ Harddisk ที่เก็บข้อมูลเป็นก้อนๆ และรองรับการเพิ่มหรือลดของปริมาณข้อมูลได้
  • มีบริการสอบถามและดูแลเป็นพิเศษ – มี service ดูแลอย่างดีเป็นพิเศษ ให้คำปรึกษาพร้อมดูแลอย่างใกล้ชิด โดยบริษัท 10gen, Inc แต่ก็แน่นอนว่าไม่ฟรีนะสำหรับการบริการพิเศษแบบนี้

เริ่มการติดตั้ง MongoDB บน Windown

1.  ดาวน์โหลด MongoDB : https://www.mongodb.org/downloads

download_mongodb

 

2. ติดตั้ง

mongodb_install_1

2.1  กด Next จนเสร็จสิ้น
mongodb_install_finish

 

2.2 กด Finish

3.  เปิด cmd เข้าไปที่ path ของ mongoDB ที่ติดตั้ง (ถ้าตอนติดตั้งไม่ได้เปลี่ยนแปลงค่า จะเป็น C:\Program Files\MongoDB\Server\3.0\bin)

โดย พิมพ์

=> cd C:\Program Files\MongoDB\Server\3.0\bin [Enter] (แล้วแต่จะ ติดตั้งไว้ที่ใดของเครื่อง)

cmdcd mongo 3.1  จะใช้งานฐานข้อมูลของ MongoDB ได้จำเป็นต้องมีที่เก็บข้อมูล ให้เราไปสร้าง directory เก็บข้อมูลก่อน ในที่นี่ ผมขอใช้

mkdir \data\db จะได้ (C:data\db)

3.2  จากนั้นก็ไปกำหนดให้ MongoDB รู้จักที่เก็บฐานข้อมูลก่อน โดย พิมพ์

=> mongod.exe dbpath “C:data\db” [Enter]

3.3 ทดสอบการติดตั้ง โดยพิมพ์

=> mongod [Enter]  (MongoDB Server Start)

mongodb_start_server

ถ้าขึ้นแบบนี้แสดงว่า MongoDB Server Start แล้ว

ศึกษาข้อมูลเพิ่มเติม :: mongoDB manual

แนะนำแหล่งศึกษาเพิ่มเติม :: http://www.tutorialspoint.com/mongodb