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

Truy vấn MongoDB tìm dữ liệu từ mảng bên trong object

Tạo collection với document chứa object lồng mảng:

> db.findDataDemo.insertOne(
    {
      "_id": new ObjectId(),
      "CustomerName": "John",
      "CustomerDetails": {
        "CountryName": [ "AUS" ],
        "isMarried": [ false ]
      }
    }
); { "acknowledged" : true, "insertedId" : ObjectId("5cefa5eeef71edecf6a1f6a5") }
> db.findDataDemo.insertOne(
    {
      "_id": new ObjectId(),
      "CustomerName": "Carol",
      "CustomerDetails": {
        "CountryName": [ "UK" ],
        "isMarried": [ true ]
      }
    }
); { "acknowledged" : true, "insertedId" : ObjectId("5cefa60aef71edecf6a1f6a6") }

Hiển thị tất cả document:

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

Kết quả

{ "_id" : ObjectId("5cefa5eeef71edecf6a1f6a5"), "CustomerName" : "John", "CustomerDetails" : { "CountryName" : [ "AUS" ], "isMarried" : [ false ] } }
{ "_id" : ObjectId("5cefa60aef71edecf6a1f6a6"), "CustomerName" : "Carol", "CustomerDetails" : { "CountryName" : [ "UK" ], "isMarried" : [ true ] } }

Truy vấn tìm document có CountryName = "UK" bên trong object CustomerDetails (sử dụng dot notation):

> db.findDataDemo.find({"CustomerDetails.CountryName": "UK"});

Kết quả

{ "_id" : ObjectId("5cefa60aef71edecf6a1f6a6"), "CustomerName" : "Carol", "CustomerDetails" : { "CountryName" : [ "UK" ], "isMarried" : [ true ] } }