sql >> Databasteknik >  >> NoSQL >> MongoDB

Mongodb rekursiv fråga

Du kan prova nedanstående aggregering.

Stadier $match - $graphLookup - $project .

$reduce för att välja det första elementet från var och en av $graphLookup nameList's na array.

db.taxon.aggregate([{
    $match: {
        _id: {
            $in: listId
        }
    }
}, {
    $graphLookup: {
        from: "taxon",
        startWith: "$_id",
        connectFromField: "pa",
        connectToField: "_id",
        as: "nameList"
    }
}, {
    $project: {
        nameList: {
            $reduce: {
                input: "$nameList",
                initialValue: [],
                in: {
                    "$concatArrays": ["$$value", {
                        $slice: ["$$this.na", 1]
                    }]
                }
            }
        }
    }
}])



  1. MongoDB Query, sortera och ta sedan n:te dokumentet för grupp

  2. Data.model.updateItem är inte en funktion TypeError:Data.model.updateItem är inte en funktion

  3. Hitta största dokumentstorlek i MongoDB

  4. Varför lua script block redis-server?