Mongodb tổng hợp gte và lte

Tôi cần lọc tài liệu của mình theo ngày tháng. Tài liệu của tôi chứa một mảng đối tượng có các trường startDate và endDate như thế này

[
  {
    "key": 1,
    "dates": [
      {
        "id": 1,
        "startDate": "20220512",
        "endDate": "20220517"
      },
      {
        "id": 2,
        "startDate": "20220701",
        "endDate": "20220705"
      }
    ]
  },
  {
    "key": 2,
    "dates": [
      {
        "id": 3,
        "startDate": "20220501",
        "endDate": "20220505"
      }
    ]
  }
]

Làm cách nào tôi có thể lọc tổng hợp này với một yêu cầu như. /documents?startDate=20220510&endDate=20220518 ?

Trong php tôi đã viết yêu cầu này hoạt động trên mongoplayground nhưng không hoạt động ở đây, tôi gặp lỗi "bộ lọc khớp phải là một biểu thức trong một đối tượng"

Thao tác sau đây sử dụng toán tử $gte để xác định xem

{ "_id" : 1, "item" : "abc1", description: "product 1", qty: 300 }
{ "_id" : 2, "item" : "abc2", description: "product 2", qty: 200 }
{ "_id" : 3, "item" : "xyz1", description: "product 3", qty: 250 }
{ "_id" : 4, "item" : "VWZ1", description: "product 4", qty: 300 }
{ "_id" : 5, "item" : "VWZ2", description: "product 5", qty: 180 }
1 có lớn hơn hoặc bằng
{ "_id" : 1, "item" : "abc1", description: "product 1", qty: 300 }
{ "_id" : 2, "item" : "abc2", description: "product 2", qty: 200 }
{ "_id" : 3, "item" : "xyz1", description: "product 3", qty: 250 }
{ "_id" : 4, "item" : "VWZ1", description: "product 4", qty: 300 }
{ "_id" : 5, "item" : "VWZ2", description: "product 5", qty: 180 }
2 không

db.inventory.aggregate(
   [
     {
       $project:
          {
            item: 1,
            qty: 1,
            qtyGte250: { $gte: [ "$qty", 250 ] },
            _id: 0
          }
     }
   ]
)

Hoạt động trả về kết quả sau

{ "item" : "abc1", "qty" : 300, "qtyGte250" : true }
{ "item" : "abc2", "qty" : 200, "qtyGte250" : false }
{ "item" : "xyz1", "qty" : 250, "qtyGte250" : true }
{ "item" : "VWZ1", "qty" : 300, "qtyGte250" : true }
{ "item" : "VWZ2", "qty" : 180, "qtyGte250" : false }

←   $gt (tổng hợp) $lt (tổng hợp)  →

© MongoDB, Inc 2008-nay. MongoDB, Mongo và logo chiếc lá là các nhãn hiệu đã đăng ký của MongoDB, Inc

GTE và LTE trong MongoDB là gì?

(Bài viết này là một phần của Hướng dẫn MongoDB của chúng tôi. . Toán tử so sánh

LTE và GTE là gì?

Tôi đã học được rằng lte nhỏ hơn hoặc bằng và gte lớn hơn hoặc bằng .

Làm cách nào để sử dụng LTE trong MongoDB?

Phương thức tổng hợp nào được MongoDB ưa thích sử dụng?

Đường dẫn cung cấp khả năng tổng hợp dữ liệu hiệu quả bằng cách sử dụng các thao tác gốc trong MongoDB và là phương pháp ưa thích để tổng hợp dữ liệu trong MongoDB. Đường dẫn tổng hợp có thể hoạt động trên một bộ sưu tập được phân đoạn.