Untitled

mail@pastecode.io avatar
unknown
javascript
7 months ago
2.6 kB
42
Indexable
Never
db.getCollection("companies").aggregate([
    {
        $geoNear: {
            near: {
                type: "Point",
                coordinates: [11.09576, 47.49209]
            },
            distanceField: "erfuellungsorte.distance",
            maxDistance: 100000,
            spherical: true,
            distanceMultiplier: 0.001
        }
    },
    {
        $unwind: "$erfuellungsorte"
    },
    {
        $addFields: {
            "erfuellungsorte._id": { $first: "$erfuellungsOrte._id" },
            "erfuellungsorte.erfuellungsOrt": { $first: "$erfuellungsOrte.erfuellungsOrt" },
            "erfuellungsorte.facebook": { $first: "$erfuellungsOrte.facebook" },
            "erfuellungsorte.instagram": { $first: "$erfuellungsOrte.instagram" },
            "erfuellungsorte.tiktok": { $first: "$erfuellungsOrte.tiktok" },
            "erfuellungsorte.location": { $first: "$erfuellungsOrte.location" },
            "erfuellungsorte.logoBilderDetails": { $first: "$erfuellungsOrte.logoBilderDetails" },
            "erfuellungsorte.email": { $first: "$erfuellungsOrte.email" },
            "erfuellungsorte.entwertungs_email": { $first: "$erfuellungsOrte.entwertungs_email" },
            "erfuellungsorte.erfuellungsOrt": { $first: "$erfuellungsOrte.erfuellungsOrt" },
            "erfuellungsorte.speisekarte": { $first: "$erfuellungsOrte.speisekarte" },
            "erfuellungsorte.oeffnungszeiten": { $first: "$erfuellungsOrte.oeffnungszeiten" },
            "erfuellungsorte.website": { $first: "$erfuellungsOrte.website" },
            "erfuellungsorte.whatsapp": { $first: "$erfuellungsOrte.whatsapp" },
            "erfuellungsorte.strasse": { $first: "$erfuellungsOrte.strasse" },
            "erfuellungsorte.ort": { $first: "$erfuellungsOrte.ort" },
            "erfuellungsorte.land": { $first: "$erfuellungsOrte.land" },
            "erfuellungsorte.ausstattungsmerkmaleDetails": { $first: "$erfuellungsOrte.ausstattungsmerkmaleDetails" }
        }
    },
    {
        $group: {
            _id: "$_id",
            kundennummer: { $first: "$kundennummer" },
            logoBilderDetails: { $first: "$logoBilderDetails" },
            angebotseinstellungenDetails: { $first: "$angebotseinstellungenDetails" },
            state: { $first: "$state" },
            erfuellungsorte: {
                $push: "$erfuellungsorte"
            }
        }
    },
    {
        $project: {
            _id: 1,
            kundennummer: 1,
            state: 1,
            erfuellungsorte: 1
        }
    }
]);