第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

如何在 mongo DB 中使用聚合進(jìn)行多層計(jì)數(shù)細(xì)分?

如何在 mongo DB 中使用聚合進(jìn)行多層計(jì)數(shù)細(xì)分?

侃侃爾雅 2022-06-05 10:55:16
我有以下結(jié)構(gòu)的文檔。{  name: "John Doe",  City : "OK",  Prepaid: "Y"},{  name: "Jane Doe",  City : "CA",  Prepaid: "N"},{  name: "Jule Doe",  City : "OK",  Prepaid: "N"},{  name: "Jake Doe",  City : "OK",  Prepaid: "Y"}我想先根據(jù)城市對它進(jìn)行分組,然后再對預(yù)付費(fèi)進(jìn)行分組,并獲得每種預(yù)付費(fèi)類型的單獨(dú)計(jì)數(shù)??雌饋砼c此類似的東西。{  City : OK  Count : {    "filter": prepaid,    "count": {      Y : 2      N: 1    }  }}{  City : CA  Count : {    "filter": prepaid,    "count": {      Y : 0      N: 1    }  }}我嘗試基于多個(gè)字段進(jìn)行聚合,它給了我文檔的總數(shù)而不是故障。這是我為聚合管道嘗試的內(nèi)容:db.collection.aggregate([    {$match:matchquery    },{$group:{_id:{city: '$city', prepaid: '$prepaid' }, count:{$sum:1}    }}])
查看完整描述

1 回答

?
開心每一天1111

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超13個(gè)贊

您可以運(yùn)行$group兩次以prepaid首先計(jì)數(shù),然后您可以應(yīng)用$arrayToObject來獲取Y/N對象鍵:


db.collection.aggregate([

    {

        $group: {

            _id: { city: "$City", prepaid: "$Prepaid" },

            total: { $sum: 1 }

        }

    },

    {

        $grop: {

            _id: "$_id.city",

            Count: {

                $push: {

                    k: "$_id.prepaid", v: "$total"

                }

            }

        }

    },

    {

        $project: {

            _id: 0,

            city: "$_id",

            Count: { $mergeObjects: [ { filter: "prepaid" }, { count: { $arrayToObject: "$Count" } } ] }

        }

    }

])


查看完整回答
反對 回復(fù) 2022-06-05
  • 1 回答
  • 0 關(guān)注
  • 113 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號