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

หาข้อมูล Intersection ของ Array ใน MongoDB

การหา Intersection ของ Array ด้วย $setIntersection

สำหรับ Array Intersection ใน MongoDB ให้ใช้ $setIntersection ภายใน aggregate()

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

> db.demo625.insertOne(
...     {
...         Name: "John",
...         Marks: [56,98,60]
...     }
... );
{ "acknowledged" : true, "insertedId" : ObjectId("5e9ab8e16c954c74be91e6aa") }
> db.demo625.insertOne(
...     {
...         Name: "John",
...         Marks: [110,56,72]
...     }
... );
{ "acknowledged" : true, "insertedId" : ObjectId("5e9ab8e26c954c74be91e6ab") }
> db.demo625.insertOne(
...     {
...         Name: "Chris",
...         Marks: [90,91]
...     }
... );
{ "acknowledged" : true, "insertedId" : ObjectId("5e9ab8e26c954c74be91e6ac") }
> db.demo625.insertOne(
...     {
...         Name: "Robert",
...         Marks: [60,75]
...     }
... );
{ "acknowledged" : true, "insertedId" : ObjectId("5e9ab8e26c954c74be91e6ad") }

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

> db.demo625.find();

ผลลัพธ์:

{ "_id" : ObjectId("5e9ab8e16c954c74be91e6aa"), "Name" : "John", "Marks" : [ 56, 98, 60 ] }
{ "_id" : ObjectId("5e9ab8e26c954c74be91e6ab"), "Name" : "John", "Marks" : [ 110, 56, 72 ] }
{ "_id" : ObjectId("5e9ab8e26c954c74be91e6ac"), "Name" : "Chris", "Marks" : [ 90, 91 ] }
{ "_id" : ObjectId("5e9ab8e26c954c74be91e6ad"), "Name" : "Robert", "Marks" : [ 60, 75 ] }

คิวรีหา Array Intersection

> db.demo625.aggregate([
...     {
...         "$project": {
...             "Name": 1,
...             "Marks": {
...                 "$setIntersection": [ "$Marks", [56,98,60] ]
...             }
...         }
...     }
... ])

ผลลัพธ์:

{ "_id" : ObjectId("5e9ab8e16c954c74be91e6aa"), "Name" : "John", "Marks" : [ 56, 60, 98 ] }
{ "_id" : ObjectId("5e9ab8e26c954c74be91e6ab"), "Name" : "John", "Marks" : [ 56 ] }
{ "_id" : ObjectId("5e9ab8e26c954c74be91e6ac"), "Name" : "Chris", "Marks" : [ ] }
{ "_id" : ObjectId("5e9ab8e26c954c74be91e6ad"), "Name" : "Robert", "Marks" : [ 60 ] }