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

การค้นหาข้อมูลภายในออบเจ็กต์ซ้อน (Hash) ใน MongoDB

MongoDB ใช้ Dot Notation (เครื่องหมายจุด) เพื่อเข้าถึงและค้นหาข้อมูลภายในออบเจ็กต์ซ้อน (Nested Object/Hash) ได้อย่างง่ายดาย

ตัวอย่างข้อมูลทดสอบ

> db.hashDemo.insertOne({"ClientName": "Larry", "ClientAge": 23, "ClientDetails": {"isEducated": true, "ClientProject": "University Management"}});
{ "acknowledged": true, "insertedId": ObjectId("5ca1ef1266324ffac2a7dc5e") }
> db.hashDemo.insertOne({"ClientName": "Chris", "ClientAge": 26, "ClientDetails": {"isEducated": false, "ClientProject": "Online Book Store"}});
{ "acknowledged": true, "insertedId": ObjectId("5ca1ef7766324ffac2a7dc5f") }

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

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

ผลลัพธ์

{
  "_id": ObjectId("5ca1ef1266324ffac2a7dc5e"),
  "ClientName": "Larry",
  "ClientAge": 23,
  "ClientDetails": {
    "isEducated": true,
    "ClientProject": "University Management"
  }
}
{
  "_id": ObjectId("5ca1ef7766324ffac2a7dc5f"),
  "ClientName": "Chris",
  "ClientAge": 26,
  "ClientDetails": {
    "isEducated": false,
    "ClientProject": "Online Book Store"
  }
}

ค้นหาเงื่อนไขหลายเงื่อนไขในออบเจ็กต์ซ้อน

> db.hashDemo.find({"ClientDetails.isEducated": false, "ClientDetails.ClientProject": "Online Book Store"}).pretty();

ผลลัพธ์

{
  "_id": ObjectId("5ca1ef7766324ffac2a7dc5f"),
  "ClientName": "Chris",
  "ClientAge": 26,
  "ClientDetails": {
    "isEducated": false,
    "ClientProject": "Online Book Store"
  }
}

สรุป: ใช้ FieldName.SubFieldName รูปแบบ Dot Notation ในเงื่อนไข find() เพื่อค้นหาข้อมูลในออบเจ็กต์ซ้อนหลายระดับได้