6 1聚合框架概覽

2022-07-25 21:09:15 字數 2078 閱讀 3903

為呼叫聚合框架就要定義乙個管道。聚合管道(aggregation pipeline)裡的每一步輸出都作為下一步的輸入。每一步都在輸入文件執行單個操作並生成輸出文件。

聚合管道操作包含下面幾個部分:

sql對比聚合框架

按照商品統計評價的數量

db.reviews.aggregate([ }} ])
輸入文件的字段通常會通過字首美元符$指定。這裡我們按照商品統計,所以是$project_id。

查詢指定商品的評價的數量

var product = db.products.findone()

db.reviews.aggregate([ }, }} ])

$match要在$group之前。

計算指定商品的評分的平均值

var product = db.products.findone()

db.reviews.aggregate([ }, ,count:}} ])

計算指定商品相同的評分的個數

var product = db.products.findone()

db.reviews.aggregate([ }, }} ])

連線集合

偽連線計算每個類別下的商品數量

db.products.aggregate([ }} ])
輸出的結果:

輸出的結果不友好,我們不知道這個類別的名稱。

db.maincategorysummary.remove({})

db.products.aggregate([ }} ]).foreach(function(doc));

if(category !=null)else

db.maincategorysummary.insert(doc);

})db.maincategorysummary.findone()

輸出結果:

p.p1

span.s1

結果更友好了。

偽連線處理大量資料時會很慢。

$out and 和 $project

db.products.aggregate([

}},])

使用$out操作符,可以自動把聚合管道的輸出結果儲存到集合中。如果集合不存在,則$out操作符將會建立乙個集合,或者如果存在就會完全取代現有的集合。此外,如果建立新的集合失敗的話,mongodb不會修改之前的集合。

db.products.aggregate([ } ])
$project操作符允許我們過濾可以傳遞給管道下一階段的

字段。雖然$match允許我們通過限制文件數量傳遞下一步的資料量,但是$project可以用來限制每個傳給下一步文件的大小。限制文件的大小可以改善效能。

$unwind(使用$project過濾欄位後,需要加乙個$unwind,不然直接使用$group會報錯)

db.products.aggregate([ 

}, ,

}}, ])

db.countsbycategory.find()

找出曼哈頓最好的客戶

來自為知筆記(wiz)

Android UI框架概覽

在android中絕大部分的ui元件都是存放在android.widget包及其子包 android.view包及其子包,其中所有的ui檢視元件都是繼承自 view 類,view類還有乙個重要的子類 viewgroup 所以它也具有view的特性,但它主要用來充當view的容器,將其中的view視作...

常用Cocoa框架概覽

cocoa不是一種程式語言 它可以執行多種程式語言 它也不是乙個開發工具 通過命令列我們仍然可以開發cocoa程式 它是建立mac os x和ios程式的原生物件導向api,為這兩者應用提供了程式設計環境。其實所有的mac os x和ios程式都是由大量的物件構成,而這些物件的根物件都是nsobje...

深度學習框架概覽

import numpy as np import tensorflow as tf w tf.variable 0,dtype tf.float32 定義引數 cost tf.add tf.add w 2,tf.multiply 10,w 25 定義損失函式 損失函式j w 5 2,我們希望通過優...