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

Najděte skupinu odlišných hodnot podle jiného pole mongodb

musíte napsat souhrnný kanál

  • $match - filtrovat dokumenty podle kritérií
  • $group - seskupte dokumenty podle klíčového pole
  • $addToSet - agregovat jedinečné prvky
  • $project - projekt v požadovaném formátu
  • $reduce - zredukujte pole pole na pole o $concatArrays

souhrnný dotaz

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()

výsledek

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

můžete přidat $sort podle page_id potrubí v případě potřeby




  1. MongoDB :Existuje způsob, jak zjistit trend hodnoty pomocí agregace?

  2. MongoDB zkontrolujte, zda je id platné BSON PHP

  3. jak uložit dataframe v mongodb pomocí pyspark?

  4. Bezproblémové měřítko pro vaše servery MongoDB