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

จะค้นหาเอกสารตามมูลค่าของการเพิ่มสองคุณสมบัติใน MongoDB ได้อย่างไร?


คุณสามารถใช้กรอบงานรวมสำหรับสิ่งนี้ ที่นี่ เราจะได้ผลรวมแล้วจับคู่เพื่อค้นหาเอกสารที่น้อยกว่าจำนวนที่ระบุ ให้เราสร้างคอลเลกชันที่มีเอกสารก่อน -

> db.searchDocumentsDemo.insertOne({"Value1":100,"Value2":560});{ "acknowledged" :true, "insertedId" :ObjectId("5cd3fe1eedc6604c74817ce9")}> db.searchDocumentsDemo.insertOne() {"Value1":300,"Value2":150});{ "acknowledged" :true, "insertedId" :ObjectId("5cd3fe29edc6604c74817cea")}> db.searchDocumentsDemo.insertOne({"Value1":400,"Value2" :200});{ "รับทราบ" :จริง "insertedId" :ObjectId("5cd3fe30edc6604c74817ceb")}> db.searchDocumentsDemo.insertOne({"Value1":190,"Value2":210});{ "รับทราบ" :จริง "insertedId" :ObjectId("5cd3fe45edc6604c74817cec")}

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

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

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

{ "_id" :ObjectId("5cd3fe1eedc6604c74817ce9"), "Value1" :100, "Value2" :560}{ "_id" :ObjectId("5cd3fe29edc6604c74817cea"), "Value1" :300":Value }{ "_id" :ObjectId("5cd3fe30edc6604c74817ceb"), "Value1" :400, "Value2" :200}{ "_id" :ObjectId("5cd3fe45edc6604c74817cec"), "Value1" :190, "Value2"

ต่อไปนี้เป็นแบบสอบถามเพื่อค้นหาเอกสารตามค่าของการเพิ่มสองคุณสมบัติในเอกสาร -

<ก่อนหน้า>> db.searchDocumentsDemo.aggregate([... { $project:{totalValue:{ $add:[ "$Value1", "$Value2" ] } } },... { $match:{totalValue:{$lt:500 }} }... ]);

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

{ "_id" :ObjectId("5cd3fe29edc6604c74817cea"), "totalValue" :450 }{ "_id" :ObjectId("5cd3fe45edc6604c74817cec"), "totalValue" :400 }