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