Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MongoDB

Truy vấn MongoDB tìm giá trị từ dữ liệu dạng JSON lồng nhau

Để 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" ] }