Để tìm giá trị từ dữ liệu JSON lồng nhau, sử dụng find() kết hợp với dot notation (.).
Tạo collection với document:
> db.findValueFromJsonDemo.insertOne(
{
"UserDetails": [{
"_id": new ObjectId(),
"UserName": "Carol",
"UserMessage": "Hi"
}],
"UserFriendsName": ["John", "Sam"]
}
); { "acknowledged" : true, "insertedId" : ObjectId("5cdf8a4cbf3115999ed511fd") }
Hiển thị document:
> db.findValueFromJsonDemo.find().pretty();
Kết quả:
{ "_id" : ObjectId("5cdf8a4cbf3115999ed511fd"), "UserDetails" : [ { "_id" : ObjectId("5cdf8a4cbf3115999ed511fc"), "UserName" : "Carol", "UserMessage" : "Hi" } ], "UserFriendsName" : [ "John", "Sam" ] }
Truy vấn tìm document có UserMessage = "Hi" bên trong mảng UserDetails (dùng dot notation):
> db.findValueFromJsonDemo.find({'UserDetails.UserMessage': "Hi"});
Kết quả:
{ "_id" : ObjectId("5cdf8a4cbf3115999ed511fd"), "UserDetails" : [ { "_id" : ObjectId("5cdf8a4cbf3115999ed511fc"), "UserName" : "Carol", "UserMessage" : "Hi" } ], "UserFriendsName" : [ "John", "Sam" ] }