MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Mongodb nếu sau đó điều kiện dưới bộ lọc cách thực hiện

Sau khi thảo luận trong trò chuyện, có vẻ như vấn đề chung là làm thế nào để chọn tài liệu từ bộ sưu tập chính dựa trên 2 tiêu chí của các tài liệu lịch sử liên quan:

db.main.aggregate([
  {$lookup: {
      from: "history",
      localField: "history_id",
      foreignField: "history_id",
      as: "History"
  }},
  {$match: {
      $expr: {
        $eq: [
          false,
          {$reduce: {
              input: "$History",
              initialValue: false,
              in: {
                $or: [
                  "$$value",
                  {$and: [
                      {$eq: [
                          "$$this.user_id",
                          ObjectId("5e4a8d2d3952132a08ae5764")
                      ]},
                      {$gte: [
                          "$$this.date",
                          "$date"
                      ]}
                  ]}
                ]
              }
          }}
        ]
      }
  }}
])

Sân chơi




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Nodejs Mongodb cập nhật nhiều bộ sưu tập

  2. Cách MongoDB kích hoạt học máy

  3. MongoDb tương đương với nhà văn trong Spring Batch?

  4. Làm thế nào để chuyển đổi mongo ObjectId .toString mà không bao gồm trình bao bọc 'ObjectId ()' - chỉ có Giá trị?

  5. Trả lại giá trị thực cuối cùng cho mỗi nhóm