Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MongoDB

เขียนเงื่อนไขเท่ากัน (Equality) ใน MongoDB โดยไม่ใช้ $eq

ใน MongoDB สามารถเขียนเงื่อนไขเท่ากันได้โดยตรง โดยไม่ต้องใช้ตัวดำเนินการ $eq เริ่มต้นด้วยการสร้างคอลเลกชันตัวอย่าง:

> db.operatorDemo.insertOne({"StudentSubject":["MongoDB","MySQL","Java"]});
{ "acknowledged" : true, "insertedId" : ObjectId("5cef94eaef71edecf6a1f6a2") }
> db.operatorDemo.insertOne({"StudentSubject":["Java","C","C++"]});
{ "acknowledged" : true, "insertedId" : ObjectId("5cef94faef71edecf6a1f6a3") }

แสดงเอกสารทั้งหมด:

> db.operatorDemo.find().pretty();
{ "_id" : ObjectId("5cef94eaef71edecf6a1f6a2"), "StudentSubject" : [ "MongoDB", "MySQL", "Java" ] }
{ "_id" : ObjectId("5cef94faef71edecf6a1f6a3"), "StudentSubject" : [ "Java", "C", "C++" ] }

คิวรี่ค้นหาเอกสารที่ StudentSubject มีค่า "MongoDB" (ไม่ใช้ $eq):

> db.operatorDemo.find({StudentSubject:"MongoDB"});
{ "_id" : ObjectId("5cef94eaef71edecf6a1f6a2"), "StudentSubject" : [ "MongoDB", "MySQL", "Java" ] }

คำอธิบาย: เมื่อระบุค่าโดยตรงในออบเจกต์คิวรี่ {field: value} MongoDB จะตีความว่าเป็นการเปรียบเทียบเท่ากัน (equality) อัตโนมัติ ซึ่งเทียบเท่ากับ {field: {$eq: value}} รูปแบบสั้นนี้ใช้งานได้กับทุกประเภทข้อมูล รวมถึงอาร์เรย์ (จะจับคู่หากอาร์เรย์มีค่านั้นอยู่)