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

จะเปรียบเทียบค่าฟิลด์ใน MongoDB ได้อย่างไร


คุณสามารถใช้ตัวดำเนินการ $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 }