ใช้ $ne เพื่อหาเอกสารที่ไม่มีค่าเฉพาะ
บทความนี้สาธิตการใช้งานออปเจอเตอร์ $ne (Not Equal) ใน MongoDB เพื่อค้นหาเอกสารที่ฟิลด์เฉพาะไม่มีค่าเท่ากับค่าที่กำหนด
ขั้นตอนที่ 1: สร้าง Collection และเพิ่มข้อมูลตัวอย่าง
สร้าง collection ชื่อ demo206 มีฟิลด์ ClientDetails เป็นอาร์เรย์ของออบเจกต์ที่มี CountryName
> db.demo206.insertOne({
"ClientDetails": [{ "Name": "Chris", "Age": 28, "CountryName": "US" }]
});
{ "acknowledged": true, "insertedId": ObjectId("5e3d8bd403d395bdc21346ee") }
> db.demo206.insertOne({
"ClientDetails": [{ "Name": "David", "Age": 29, "CountryName": "UK" }]
});
{ "acknowledged": true, "insertedId": ObjectId("5e3d8bd403d395bdc21346ef") }
> db.demo206.insertOne({
"ClientDetails": [{ "Name": "Bob", "Age": 31, "CountryName": "US" }]
});
{ "acknowledged": true, "insertedId": ObjectId("5e3d8bd503d395bdc21346f0") }
ขั้นตอนที่ 2: แสดงข้อมูลทั้งหมด
> db.demo206.find();
ผลลัพธ์:
{ "_id": ObjectId("5e3d8bd403d395bdc21346ee"), "ClientDetails": [{ "Name": "Chris", "Age": 28, "CountryName": "US" }] }
{ "_id": ObjectId("5e3d8bd403d395bdc21346ef"), "ClientDetails": [{ "Name": "David", "Age": 29, "CountryName": "UK" }] }
{ "_id": ObjectId("5e3d8bd503d395bdc21346f0"), "ClientDetails": [{ "Name": "Bob", "Age": 31, "CountryName": "US" }] }
ขั้นตอนที่ 3: ค้นหาเอกสารที่ CountryName ไม่ใช่ "US"
> db.demo206.find({ "ClientDetails.CountryName": { "$ne": "US" } });
ผลลัพธ์ที่ได้
{ "_id": ObjectId("5e3d8bd403d395bdc21346ef"), "ClientDetails": [{ "Name": "David", "Age": 29, "CountryName": "UK" }] }
สรุป: $ne เหมาะสำหรับการกรองข้อมูลที่ "ไม่ใช่" ค่าที่กำหนด ทำงานได้ทั้งฟิลด์ระดับบนสุดและฟิลด์ภายในอาร์เรย์ (Dot Notation)