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

การดึงอิลิเมนต์เฉพาะใน Nested Array ของ MongoDB

ใช้ $elemMatch หลายชั้น

เพื่อดึงอิลิเมนต์เฉพาะในอาร์เรย์ซ้อนหลายชั้น ให้ใช้ $elemMatch แบบ巢 (nested) เริ่มต้นด้วยข้อมูลผู้ใช้ที่มีรายละเอียดซ้อนกัน

> db.particularElementDemo.insertOne({ "GroupId": "Group-1", "UserDetails": [ { "UserName": "John", "UserOtherDetails": [ { "UserEmailId": "John123@gmail.com", "UserFriendName": [ { "Name": "Chris" } ] }, { "UserEmailId": "John22@hotmail.com", "UserFriendName": [ { "Name": "Robert" } ] } ] } ] });

คำสั่งค้นหาที่ UserFriendName.Name = "Robert" ในชั้นลึก:

> db.particularElementDemo.find({ 'UserDetails': { $elemMatch: { 'UserOtherDetails': { $elemMatch: { 'UserFriendName': { $elemMatch: { "Name": "Robert" } } } } } } }, { "UserDetails.UserOtherDetails.UserFriendName.Name": 1 });

ผลลัพธ์แสดงเฉพาะส่วนที่ตรงกับเงื่อนไข