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

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

關(guān)于mongodb的聚合問題,如何優(yōu)化呢

關(guān)于mongodb的聚合問題,如何優(yōu)化呢

慕田峪4524236 2018-11-29 22:14:27
初學(xué)mongodb的聚合,略生疏,關(guān)于下面這道題題目:查詢founded_year為2004含有5個和以上的funding_rounds,funding_rounds里的raised_amount之和的平均值最小問這個文檔的name是啥文檔大體結(jié)構(gòu)(已略去無關(guān)字段):我的解答如下(已驗證結(jié)果是正確的):現(xiàn)想問:我的這個寫法是否很冗余,有沒有更優(yōu)化的聚合寫法呢?因為初學(xué),沒接觸太多聚合符,所以請求拓展
查看完整描述

1 回答

?
烙印99

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

我也是初學(xué)一周這樣,不知道還有不有更好的寫法

源數(shù)據(jù)

db.test3.insert([

{

    "name" : "Wetpaint",

    "founded_year" : 2004,

    "funding_rounds" : [ 

        {

            "raised_amount" : 5250000

        }, 

        {

            "raised_amount" : 9500000

        }, 

        {

            "raised_amount" : 25000000

        }, 

        {

            "raised_amount" : 9500000

        }, 

        {

            "raised_amount" : 25000000

        }

    ]

},{

    "name" : "Wddddt",

    "founded_year" : 2004,

    "funding_rounds" : [ 

        {

            "raised_amount" : 5250000

        }, 

        {

            "raised_amount" : 9500000

        }, 

        {

            "raised_amount" : 25000000

        }

    ]

},

{

    "name" : "Wcccct",

    "founded_year" : 2004,

    "funding_rounds" : [ 

        {

            "raised_amount" : 520000

        }, 

        {

            "raised_amount" : 900000

        }, 

        {

            "raised_amount" : 2500000

        }, 

        {

            "raised_amount" : 950000

        }, 

        {

            "raised_amount" : 25000000

        }

    ]

},{

    "name" : "Wetaaat",

    "founded_year" : 2004,

    "funding_rounds" : [ 

        {

            "raised_amount" : 5250000

        }, 

        {

            "raised_amount" : 9500000

        }, 

        {

            "raised_amount" : 25000000

        }

    ]

}

])

sql

db.getCollection('test3').aggregate([

{

    $project: {

        'name': 1,

        'founded_year': 1,    

        'funding_rounds': 1,

        'funding_rounds_size': {$size: '$funding_rounds'},

        'funding_rounds_avg': {$avg: '$funding_rounds.raised_amount'}

    }

},{

    $match: {

        'founded_year': 2004,

        'funding_rounds_size': {$gte: 5}

    }

},{

    $sort: {

        'funding_rounds_avg': 1

    }

}

])

感覺這種查詢方法會好點,雖然寫的有點多,不過效率應(yīng)該快點

db.getCollection('test3').aggregate([

{

  $match: {

      'founded_year': 2004

      }  

},{

    $project: {

        'name': 1,

        'founded_year': 1,    

        'funding_rounds': 1,

        'funding_rounds_size': {$size: '$funding_rounds'},

        'funding_rounds_avg': {$avg: '$funding_rounds.raised_amount'}

    }

},{

    $match: {

        'funding_rounds_size': {$gte: 5}

    }

},{

    $sort: {

        'funding_rounds_avg': 1

    }

}

])


查看完整回答
反對 回復(fù) 2018-12-31
  • 1 回答
  • 0 關(guān)注
  • 527 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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