sql >> Databasteknik >  >> NoSQL >> MongoDB

Kapslade relationer MongoDb

Du måste ändra den första $lookup att använda en pipeline (tillgänglig från v3.6)

[
    {
        "$match": {
            "id_site": 3,
            "id_parent": null,
            "id_class": null
        }
    },
    {
        "$lookup": {
            "from": "categories",
            "let": {
                "cid": "$_id"
            },
            "pipeline": [
                {
                    "$match": {
                        "$expr": { $eq: ["$id_parent", "$$cid"] }
                    }
                },
                {
                    "$lookup": {
                        "from": "media",
                        "localField": "id_media",
                        "foreignField": "_id",
                        "as": "Media"
                    }
                }
            ],
            "as": "Childs"
        }
    },
    {
        "$lookup": {
            "from": "media",
            "localField": "id_media",
            "foreignField": "_id",
            "as": "Media"
        }
    }
]



  1. Hitta exakt matchande array eller ha hela värdet av array i MongoDb

  2. Räkna antalet instanser av sträng i ett fält över dokument grupperade på ett annat fält i MongoDB?

  3. Vad är en markör i MongoDB?

  4. Vad är det bästa sättet att lagra datum i MongoDB?