sql >> Databáze >  >> NoSQL >> MongoDB

Rekurzivní dotaz Mongodb

Můžete zkusit níže agregaci.

Fáze $match - $graphLookup - $project .

$reduce vyberte první prvek z každého z $graphLookup nameList's na pole.

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. Topologie byla zničena při použití MongoDB s nativním ovladačem a Express.js

  2. MongoDB Update Array prvek

  3. Jak nainstalovat Apache CouchDB v Ubuntu 20.04

  4. MongoDB Mongoose dotazuje hluboce vnořenou řadu vnořených dokumentů podle časového období