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

Các trường $ addField lồng nhau trong MongoDB

Vì bạn đang sử dụng $unwind bạn có thể làm điều đó dễ dàng bằng cách thêm $match kể từ biểu thức:"inquiries.routeHistory.status": "ended" sẽ trả về true nếu có bất kỳ tài liệu trong routeHistory có trạng thái như vậy:

db.collection.aggregate([
    {
        $unwind: "$inquiries"
    },
    {
        $match: {
            "inquiries.routeHistory.status": "ended"
        }
    },
    {
        $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




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Redis nhanh hơn mongoDB bao nhiêu?

  2. MongoDB / Express - Cách chuyển đổi cơ sở dữ liệu sau khi kết nối qua connect ()

  3. Thêm một số loại số hàng vào lệnh / đường ống tổng hợp mongodb

  4. ngoại lệ:Kích thước BSONObj:-286331154 (0xEEEEEEEE) không hợp lệ. Kích thước phải từ 0 đến 16793600 (16MB)

  5. Thao tác cập nhật hàng loạt Mongoose