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

Filter เอกสารใน MongoDB ด้วย Simple Query

การ Filter เอกสารด้วย $match

สามารถใช้ $match ได้ Operator $match จะกรองเอกสารเพื่อส่งผ่านเฉพาะเอกสารที่ตรงกับเงื่อนไขที่ระบุไปยัง Stage ถัดไปใน Pipeline

สร้าง Collection พร้อมข้อมูล

> db.demo629.insertOne(
...     {
...         "Subject": [
...             "MySQL",
...             "MongoDB"
...         ],
...         "details": [
...             {
...                 Name:"Chris",
...                 "Marks":78
...             },
...             {
...                 Name:"David",
...                 "Marks":89
...             }
...         ]
...     }
... );
{ "acknowledged" : true, "insertedId" : ObjectId("5e9ae9f56c954c74be91e6b9") }

แสดงเอกสารทั้งหมด

> db.demo629.find();

ผลลัพธ์:

{ "_id" : ObjectId("5e9ae9f56c954c74be91e6b9"), "Subject" : [ "MySQL", "MongoDB" ], "details" : [ { "Name" : "Chris", "Marks" : 78 }, { "Name" : "David", "Marks" : 89 } ] }

คิวรี Filter เอกสาร

> db.demo629.aggregate([
...     {"$unwind": "$details"},
...     {"$match": {"details.Name": 'Chris', "Subject": {"$in":["Java","MySQL","Python","C","C++"]}}},
...     {"$project": {"details": 1, "_id": 0}}
... ]);

ผลลัพธ์:

{ "details" : { "Name" : "Chris", "Marks" : 78 } }