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

MongoDB $group (mongo hřiště)

Potřebujete dvě další fáze. Nejprve můžete spustit $reduce ke zploštění ExerciseDetail což je nyní pole polí. Jakmile to uděláte, můžete spustit $map s vnořeným $filter spárovat Sets s ExerciseDetails :

{
    $addFields: {
        ExerciseDetail: {
            $reduce: {
                input: "$ExerciseDetail",
                initialValue: [],
                in: {
                    $concatArrays: [ "$$value", "$$this" ]
                }
            }
        }
    }
},

{
    $project: {
        _id: 1,
        Sets: {
            $map: {
                input: "$Sets",
                as: "set",
                in: {
                    $let: {
                        vars: {
                            exDetail: {
                                $arrayElemAt: [
                                    { $filter: { input: "$ExerciseDetail", cond: { $eq: [ "$$this._id", "$$set.ExerciseId" ] } } },
                                    0
                                ]
                            }
                        },
                        in: {
                            $mergeObjects: [
                                "$$set", "$$exDetail"
                            ]
                        }
                    }
                }
            }
        }
    }
}

Hřiště Mongo




  1. Problém s aktualizací verze dokumentu MongoDB s JaVers

  2. Nelze spustit docker mongo image v systému Windows

  3. Nelze vytvořit index v mongodb, klíč je příliš velký na indexování

  4. Meteor:Neočekávaný výstupní kód mongo 100. Restartování. Server mongo nelze spustit