คุณสามารถใช้ตัวดำเนินการ $where เพื่อเปรียบเทียบค่าของฟิลด์ใน MongoDB ให้เราสร้างคอลเลกชันที่มีเอกสารก่อน
<ก่อนหน้า>> db.comparingFieldDemo.insertOne({"Value1":30,"Value2":40});{ "acknowledged" :true, "insertedId" :ObjectId("5c9c99ed2d6669774125246e")}> db.comparingFieldDemo.insertOne( {"Value1":60,"Value2":70});{ "acknowledged" :true, "insertedId" :ObjectId("5c9c99f62d6669774125246f")}> db.comparingFieldDemo.insertOne({"Value1":160,"Value2" :190});{ "รับทราบ" :จริง "insertedId" :ObjectId("5c9c99ff2d66697741252470")}> db.comparingFieldDemo.insertOne({"Value1":200,"Value2":160});{ "รับทราบ" :จริง "insertedId" :ObjectId("5c9c9a0b2d66697741252471")}ต่อไปนี้เป็นแบบสอบถามเพื่อแสดงเอกสารทั้งหมดจากคอลเลกชันโดยใช้วิธี find()
> db.comparingFieldDemo.find().pretty();
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้
{ "_id" :ObjectId("5c9c99ed2d6669774125246e"), "Value1" :30, "Value2" :40}{ "_id" :ObjectId("5c9c99f62d6669774125246f"), "Value1" :60, :Value2 }{ "_id" :ObjectId("5c9c99ff2d66697741252470"), "Value1" :160, "Value2" :190}{ "_id" :ObjectId("5c9c9a0b2d66697741252471"), "Value1" :200, "Value2" /pre>ต่อไปนี้เป็นแบบสอบถามที่จะค้นหาโดยการเปรียบเทียบค่าของฟิลด์
> db.comparingFieldDemo.find({ $where:"this.Value1> this.Value2" } );สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้
{ "_id" :ObjectId("5c9c9a0b2d66697741252471"), "Value1" :200, "Value2" :160 }ให้เราดูคำถามอื่น
> db.comparingFieldDemo.find({ $where:"this.Value1สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้
{ "_id" :ObjectId("5c9c99ed2d6669774125246e"), "Value1" :30, "Value2" :40 }{ "_id" :ObjectId("5c9c99f62d6669774125246f"), "Value1" :60" :Value }{ "_id" :ObjectId("5c9c99ff2d66697741252470"), "Value1" :160, "Value2" :190 }