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

จับคู่ระหว่างฟิลด์ในเฟรมเวิร์กการรวม MongoDB หรือไม่


คุณสามารถใช้ตัวดำเนินการ $cmp สำหรับสิ่งนี้ เพื่อให้เข้าใจแนวคิด ให้เราสร้างคอลเลกชันพร้อมกับเอกสาร แบบสอบถามเพื่อสร้างคอลเลกชันที่มีเอกสารมีดังนี้ -

<ก่อน>> db.matchBetweenFieldsDemo.insertOne({"FirstValue":40,"SecondValue":70});{ "acknowledged" :true, "insertedId" :ObjectId("5c92c9625259fcd19549980d")}> db.matchBetweenFieldsDemo {"FirstValue":20,"SecondValue":5});{ "รับทราบ" :จริง "insertedId" :ObjectId("5c92c96b5259fcd19549980e")}

แสดงเอกสารทั้งหมดจากคอลเล็กชันโดยใช้เมธอด find() แบบสอบถามมีดังต่อไปนี้ −

> db.matchBetweenFieldsDemo.find().pretty();

ต่อไปนี้เป็นผลลัพธ์ -

{ "_id" :ObjectId("5c92c9625259fcd19549980d"), "FirstValue" :40, "SecondValue" :70}{ "_id" :ObjectId("5c92c96b5259fcd19549980e"), "FirstValue" :20,"SecondV" }

นี่คือแบบสอบถามเพื่อจับคู่ $ ระหว่างฟิลด์ในกรอบการรวม -

> db.matchBetweenFieldsDemo.aggregate([ ... {$project:{ ... ... firstGreaterThanOrNot:{$cmp:['$FirstValue', '$SecondValue']} ... }}, . .. {$match:{firstGreaterThanOrNot:{$gt:0}}}... ]);

ต่อไปนี้เป็นผลลัพธ์ -

{ "_id" :ObjectId("5c92c96b5259fcd19549980e"), "firstGreaterThanOrNot" :1 }