sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur returnerar jag ett aggregat av undermatriser med ett filter på den översta matrisen?

Du kan prova nedanstående aggregering:

ChoreChart.aggregate([
    { "$match": { "affiliation": affiliation, "year": week.year, "weekNumber": week.number } },
    {
        $addFields: {
            chart: {
                $filter: {
                    input: "$chart",
                    cond: { $eq: [ "$$this.ordinal", 2 ] }
                }
            }
        }
    }
])

$addFields ersätter befintligt fält och $filter filtrerar inre array. Dessutom eftersom din ordinal är ett nummer som du också behöver för att ange nummer inte sträng i din fråga.




  1. Korrekt hantering av asynkrona Mongo-åtgärder i Node Promise

  2. Datamigrering från Oracle till Mongo DB

  3. Mongoose VersionError:Inget matchande dokument hittades för id när dokumentet sparas

  4. Att ställa in alternativet för små filer för att kontrollera journalföring styr inte storleken