MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Намерете отделни стойности, групирани по друго поле mongodb

трябва да напишете сборен тръбопровод

  • $match - филтриране на документите по критерии
  • $group - групирайте документите по ключово поле
  • $addToSet - агрегирайте уникалните елементи
  • $project - проект в необходимия формат
  • $reduce - намаляване на масива от масив до масив с $concatArrays

обобщена заявка

db.tt.aggregate([
    {$match : {"time_broadcast" : "09:13"}}, 
    {$group : {"_id" : "$page_id", "category_list" : {$addToSet : "$category_list"}}}, 
    {$project : {"_id" : 0, "page_id" : "$_id", "category_list" : {$reduce : {input : "$category_list", initialValue : [], in: { $concatArrays : ["$$value", "$$this"] }}}}}
]).pretty()

резултат

{ "page_id" : "123456", "category_list" : [ "news", "updates" ] }
{
        "page_id" : "1234",
        "category_list" : [
                "sport",
                "handball",
                "football",
                "sport"
        ]
}

можете да добавите $sort от page_id тръбопровод, ако е необходимо




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. mongodb, реплики и грешка:{ $err :not master and slaveOk=false, code :13435 }

  2. Отпечатайте стойността на документа в обвивката на mongodb

  3. $replaceRoot в агрегирането на mongodb

  4. Грешка при свързване с Mongodb вътре в контейнера за докер

  5. Meteor вижда отдалечен екземпляр на mongodb с MongoInternals.RemoteCollectionDriver