Computer >> Máy Tính >  >> Lập trình >> MongoDB

Truy vấn MongoDB để tìm giá trị trong mảng có nhiều tiêu chí (phạm vi)

Để tìm giá trị trong một mảng trong một phạm vi, hãy sử dụng $ gt và $ lt. Hãy để chúng tôi tạo một bộ sưu tập với các tài liệu -

> db.demo341.insertOne({
...    "Name": "Chris",
...       "productDetails" : [
...          {
...             "ProductPrice" : {
...             "Price" : 800
...          }
...       },
...       {
...          "ProductPrice" : {
...             "Price" : 400
...          }
...       },
...       {
...       "ProductPrice" : {
...          "Price" : 300
...          }
...       }
...    ]
... }
... );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e53ed5cf8647eb59e5620a7")
}
> db.demo341.insertOne({
...    "Name": "Chris",
...       "productDetails" : [
...          {      
...             "ProductPrice" : {
...                "Price" : 1000
...             }
...          },
...          {
...          "ProductPrice" : {
...             "Price" : 1200
...          }
...       },
...       {
...          "ProductPrice" : {
...             "Price" : 1300
...          }
...       }
...    ]
... }
... );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e53edc1f8647eb59e5620a8")
}

Hiển thị tất cả các tài liệu từ một bộ sưu tập với sự trợ giúp của phương thức find () -

> db.demo341.find();

Điều này sẽ tạo ra kết quả sau -

{
   "_id" : ObjectId("5e53ed5cf8647eb59e5620a7"), "Name" : "Chris", "productDetails" : [
      { "ProductPrice" : { "Price" : 800 } }, { "ProductPrice" : { "Price" : 400 } },
      { "ProductPrice" : { "Price" : 300 } }
   ]
}
{
   "_id" : ObjectId("5e53edc1f8647eb59e5620a8"), "Name" : "Chris", "productDetails" : [
      { "ProductPrice" : { "Price" : 1000 } }, { "ProductPrice" : { "Price" : 1200 } },
      { "ProductPrice" : { "Price" : 1300 } }
   ] 
}

Sau đây là truy vấn để tìm giá trị trong mảng có nhiều tiêu chí -

> db.demo341.aggregate([
...    { "$match": {
...       "productDetails": {
...          "$elemMatch": {
...          "ProductPrice.Price": {
...             "$gt": 600,
...             "$lt": 900
...          }
...       }
...    }
... }}
... ]).pretty();

Điều này sẽ tạo ra kết quả sau -

{
   "_id" : ObjectId("5e53ed5cf8647eb59e5620a7"),
   "Name" : "Chris",
   "productDetails" : [
      {
         "ProductPrice" : {
            "Price" : 800
         }
      },
      {
         "ProductPrice" : {
            "Price" : 400
         }
      },
      {
         "ProductPrice" : {
            "Price" : 300
         }
      }
   ]
}