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

Sharing is caring!

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