Đối với điều này, hãy sử dụng tổng hợp () trong MongoDB. Hãy để chúng tôi tạo một bộ sưu tập với các tài liệu -
> db.demo351.insertOne (... {...... "_id":"101", ... "ProductDetails":[... {... "ProductName":"Product- 1 ", ..." ProductPrice ":500 ...}, ... {..." ProductName ":" Product-2 ", ..." ProductPrice ":400 ...} ...]. ..} ...); {"inherit":true, "insertId":"101"}> db.demo351.insertOne (... {...... "_id":"102", .. . "ProductDetails":[... {... "ProductName":"Product-3", ... "ProductPrice":200 ...}, ... {... "ProductName":"Product- 4 ", ..." ProductPrice ":800 ...} ...] ...} ...); {"nition":true, "insertId":"102"}
Hiển thị tất cả tài liệu từ bộ sưu tập với sự trợ giúp của phương thức find () &mnus;
> db.demo351.find ();
Điều này sẽ tạo ra kết quả sau -
{"_id":"101", "ProductDetails":[{"ProductName":"Product-1", "ProductPrice":500}, {"ProductName":"Product-2", "ProductPrice":400}]} {"_id":"102", "ProductDetails":[{"ProductName":"Product-3", "ProductPrice":200}, {"ProductName":"Product-4", "ProductPrice" :800}]}
Sau đây là truy vấn để tìm các phần tử mảng cụ thể trong tài liệu MongoDB với truy vấn và bộ lọc với phạm vi -
> db.demo351.aggregate ([... {... $ match:{_id:"102"} ...}, ... {... $ addFields:{... ProductDetails:{ ... $ filter:{... input:"$ ProductDetails", ... cond:{... $ và:[... {$ gt:["$$ this.ProductPrice", 600]}, ... {$ lt:["$$ this.ProductPrice", 900]} ...] ...} ...} ...} ...} ...} ...])Điều này sẽ tạo ra kết quả sau -
{"_id":"102", "ProductDetails":[{"ProductName":"Product-4", "ProductPrice":800}]}