MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

MongoDB получава максимална дата в двойно вложен масив

Трябва да използвате $map за сканиране на външния масив и за $filter за сравняване на елементите на вътрешния масив с $max дата:

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" ]
                                }
                            }
                        }
                    }
                }
            }
        }
    }
])

Mongo Playground

РЕДАКТИРАНЕ:като гледах връзката ви, забелязах, че $map не се поддържа, можете да използвате комбинацията по-долу като заобиколно решение:

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" }
        }
    }
])

Mongo Playground (2)




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. множество транзакции на документи не работят в c#, ​​използвайки сървър на общността mongodb 4.08

  2. MongoDB вмъкване()

  3. Изберете въз основа на клеймото за време и актуализирайте клеймото с нула

  4. mongoDB заявка WHERE _id> праг

  5. MongoDB Number Field няма да вмъкне или актуализира с номера, който въвеждам