sql >> Database >  >> NoSQL >> MongoDB

Geneste $addFields in MongoDB

Aangezien je $unwind . gebruikt je kunt dat eenvoudig doen door $match . toe te voegen sinds uitdrukking:"inquiries.routeHistory.status": "ended" retourneert true als er een . is document in routeHistory een dergelijke status hebben:

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

Mongo-speeltuin




  1. Een beveiligingschecklist voor MongoDB-productie-implementaties

  2. MapVerminder schuifelen en sorteren in Hadoop

  3. $uitgeschakeld is leeg. U moet een veld als volgt specificeren:{$unset:{<field>:...}}

  4. Zoek in collectie/object - SailsJS en Waterline ORM