sql >> Databasteknik >  >> NoSQL >> MongoDB

MongoDB:$push ett beräknat uttryck i en $grupp

Du kan använda en $cond ( http://docs.mongodb.org/manual/reference /aggregation/cond/#exp._S_cond ) för detta:

db.c.aggregate( [
    { $project: {
        k: '$k',
        color: {
            $cond: [ 
                { $eq: [ '$v', true ] }, 
                'red', 
                'green'
            ]
        }
    } },
    { $group: {
        _id: '$k',
        vals: { '$push': '$color' }
    } }
] )

Redigera

Som en annan redigering nämnde behöver den faktiskt $eq att fungera sedan {'$v':true} evalueras inte som ett korrekt uttryck.




  1. Hur kan jag göra Mongodb aggregatfilter för flera insamlingar?

  2. Hur man sparar och hämtar session från Redis

  3. Mongo DB-aggregationsmatrisstorlek större än matchning

  4. Graphql skapar relationer mellan två frågor. Felet kan inte komma åt innan initiering