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

Truy vấn MongoDB cho trường trong tài liệu nhúng (embedded document)

Tạo collection với mảng tài liệu nhúng:

> db.embeddedDocumentDemo.insertOne({
    "CustomerDetails": [
        {"CustomerName": "Chris", "CustomerPurchasePrice": 3000},
        {"CustomerName": "Robert", "CustomerPurchasePrice": 4500},
        {"CustomerName": "David", "CustomerPurchasePrice": 1000}
    ]
});
{ "acknowledged": true, "insertedId": ObjectId("5cd32347edc6604c74817ccd") }

Hiển thị tài liệu

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

Kết quả:

{
    "_id": ObjectId("5cd32347edc6604c74817ccd"),
    "CustomerDetails": [
        {"CustomerName": "Chris", "CustomerPurchasePrice": 3000},
        {"CustomerName": "Robert", "CustomerPurchasePrice": 4500},
        {"CustomerName": "David", "CustomerPurchasePrice": 1000}
    ]
}

Truy vấn tài liệu có CustomerPurchasePrice = 4500 trong mảng nhúng

> db.embeddedDocumentDemo.find({"CustomerDetails.CustomerPurchasePrice": 4500});

Kết quả (trả về toàn bộ tài liệu cha vì ít nhất một phần tử khớp):

{
    "_id": ObjectId("5cd32347edc6604c74817ccd"),
    "CustomerDetails": [
        {"CustomerName": "Chris", "CustomerPurchasePrice": 3000},
        {"CustomerName": "Robert", "CustomerPurchasePrice": 4500},
        {"CustomerName": "David", "CustomerPurchasePrice": 1000}
    ]
}

Giải thích: Khi truy vấn trường trong mảng đối tượng nhúng, MongoDB trả về toàn bộ tài liệu gốc nếu bất kỳ phần tử nào trong mảng khớp điều kiện.