MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

MongoDB:$push wyliczone wyrażenie w $grupie

Możesz użyć $cond ( http://docs.mongodb.org/manual/reference /agregacja/cond/#exp._S_cond ) w tym celu:

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

Edytuj

Jak wspomniano w innej edycji, faktycznie potrzebuje $eq pracować od {'$v':true} nie jest oceniane jako poprawne wyrażenie.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Django+MongoDB kontra Node.js+MongoDB

  2. Mongoose Zaludnij bazę na innym polu Dynamic ref

  3. Zapytanie MongoDump z BinData

  4. Jak FILTROWAĆ dane zwrócone między dwiema datami z mongodb za pomocą agregacji:dopasowania, wyszukiwania i projektu?

  5. Dopasowanie pola tablicy, które zawiera dowolną kombinację podanej tablicy w MongoDB