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

MongoDB nhận ngày tối đa bên trong mảng lồng nhau kép

Bạn phải sử dụng $ map để quét mảng bên ngoài và $ filter để so sánh các phần tử của mảng bên trong với $ max ngày:

db.collection.aggregate([
    {
        $addFields: {
            inquiries: {
                $map: {
                    input: "$inquiries",
                    as: "inquiry",
                    in: {
                        inquiryId: "$$inquiry.inquiryId",
                        routeHistory: {
                            $filter: {
                                input: "$$inquiry.routeHistory",
                                cond: {
                                    $eq: [ { $max: "$$inquiry.routeHistory.routeDate" }, "$$this.routeDate" ]
                                }
                            }
                        }
                    }
                }
            }
        }
    }
])

Sân chơi Mongo

CHỈNH SỬA:bằng cách nhìn vào liên kết của bạn, tôi nhận thấy rằng $map không được hỗ trợ, bạn có thể sử dụng kết hợp bên dưới như một giải pháp thay thế:

db.collection.aggregate([
    {
        $unwind: "$inquiries"
    },
    {
        $addFields: {
            "inquiries.routeHistory": {
                $filter: {
                    input: "$inquiries.routeHistory",
                    cond: {
                        $eq: [ { $max: "$inquiries.routeHistory.routeDate" }, "$$this.routeDate" ]
                    }
                }
            }
        }
    },
    {
        $group: {
            _id: "$_id",
            callId: { $first: "$callId" },
            caller: { $first: "$caller" },
            inquiries: { $push: "$inquiries" }
        }
    }
])

Sân chơi Mongo (2)




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. c # mongodb tìm kiếm phân biệt chữ hoa chữ thường

  2. Đọc tệp từ trình bao mongo

  3. Định hình lại tài liệu bằng cách tách một giá trị trường

  4. Truy vấn dựa trên các trường được tính toán với Mongoid

  5. Tìm kiếm Toàn văn trong MongoDB không mang lại kết quả mong đợi cho @@@