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

คิวรี่ MongoDB ค้นหาค่าจากข้อมูลแบบ JSON

ใช้ find() ร่วมกับ dot notation (สัญลักษณ์จุด) เพื่อค้นหาค่าในโครงสร้างข้อมูลแบบ JSON ที่ซ้อนกัน เริ่มต้นด้วยการสร้างคอลเลกชันตัวอย่าง:

> db.findValueFromJsonDemo.insertOne(
  {
    "UserDetails": [{
      "_id": new ObjectId(),
      "UserName": "Carol",
      "UserMessage": "Hi"
    }],
    "UserFriendsName": ["John","Sam"]
  }
);
{ "acknowledged" : true, "insertedId" : ObjectId("5cdf8a4cbf3115999ed511fd") }

แสดงเอกสาร:

> db.findValueFromJsonDemo.find().pretty();
{ "_id" : ObjectId("5cdf8a4cbf3115999ed511fd"), "UserDetails" : [ { "_id" : ObjectId("5cdf8a4cbf3115999ed511fc"), "UserName" : "Carol", "UserMessage" : "Hi" } ], "UserFriendsName" : [ "John", "Sam" ] }

คิวรี่ค้นหาเอกสารที่ UserMessage เป็น "Hi" (ใช้ dot notation เข้าถึงอาร์เรย์):

> db.findValueFromJsonDemo.find({'UserDetails.UserMessage': "Hi"});
{ "_id" : ObjectId("5cdf8a4cbf3115999ed511fd"), "UserDetails" : [ { "_id" : ObjectId("5cdf8a4cbf3115999ed511fc"), "UserName" : "Carol", "UserMessage" : "Hi" } ], "UserFriendsName" : [ "John", "Sam" ] }

เทคนิค: ใช้ UserDetails.UserMessage เพื่อเข้าถึงฟิลด์ภายในออบเจกต์ที่อยู่ในอาร์เรย์ MongoDB จะค้นหาในทุกออบเจกต์ของอาร์เรย์อัตโนมัติ