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

การจับคู่เอกสาร MongoDB ที่มีค่าฟิลด์มากกว่าตัวเลขเฉพาะและดึงข้อมูลมาแสดง

ใช้ $match กับ $gt สำหรับเงื่อนไขมากกว่า

ใน pipeline aggregate ใช้ $match พร้อม $gt (greater than) เพื่อกรองเอกสารที่มีค่าฟิลด์มากกว่าที่กำหนด

สร้างข้อมูลตัวอย่าง

> db.demo730.insertOne({"Name" : "Chris", "Marks" : 33 });
> db.demo730.insertOne({ "Name" : "David", "Marks" : 89});
> db.demo730.insertOne({ "Name" : "Chris", "Marks" : 45 });

แสดงข้อมูลทั้งหมด

> db.demo730.find();

ผลลัพธ์:

{ "_id" : ObjectId("5eac54cd56e85a39df5f6339"), "Name" : "Chris", "Marks" : 33 }
{ "_id" : ObjectId("5eac54cd56e85a39df5f633a"), "Name" : "David", "Marks" : 89 }
{ "_id" : ObjectId("5eac54ce56e85a39df5f633b"), "Name" : "Chris", "Marks" : 45 }

คิวรี: เรียงลำดับ _id ใหม่สุด จำกัด 3 รายการ แล้วกรอง Chris ที่ Marks > 40 หรือ David ทุกคน

> db.demo730.aggregate([
    { $sort: { _id: -1 } },
    { $limit: 3 },
    {$match: { $or: [ {"Name": "Chris", "Marks": { "$gt": 40 }}, {"Name": "David"} ]}}
])

ผลลัพธ์

{ "_id" : ObjectId("5eac54ce56e85a39df5f633b"), "Name" : "Chris", "Marks" : 45 }
{ "_id" : ObjectId("5eac54cd56e85a39df5f633a"), "Name" : "David", "Marks" : 89 }