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

MongoDB:$push vypočítaný výraz ve skupině $

Můžete použít $cond ( http://docs.mongodb.org/manual/reference /agregation/cond/#exp._S_cond ) pro toto:

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

Upravit

Jak již byla zmíněna další úprava, ve skutečnosti potřebuje $eq fungovat od {'$v':true} není vyhodnocen jako správný výraz.




  1. MongoDB:Jak vrátit náhodné prvky bez Linq? (MongoDB, C#)

  2. Jak přejmenovat více klíčů v Redis

  3. MongoDB aktualizuje všechna pole chyby pole

  4. Jak ignorovat hodnoty null při odstraňování dokumentu MongoDB?