SDK數(shù)據(jù)庫 Aggregate·索引

2020-07-27 14:29 更新

Aggregate

數(shù)據(jù)庫集合的聚合操作實例

方法

Aggregate.addFields(object: Object): Aggregate

聚合階段。添加新字段到輸出的記錄。經(jīng)過 addFields 聚合階段,輸出的所有記錄中除了輸入時帶有的字段外,還將帶有 addFields 指定的字段。

Aggregate.bucket(object: Object): Aggregate

聚合階段。將輸入記錄根據(jù)給定的條件和邊界劃分成不同的組,每組即一個 bucket。

Aggregate.bucketAuto(object: Object): Aggregate

聚合階段。將輸入記錄根據(jù)給定的條件劃分成不同的組,每組即一個 bucket。與 bucket 的其中一個不同之處在于無需指定 boundaries,bucketAuto 會自動嘗試將記錄盡可能平均的分散到每組中。

Aggregate.count(fieldName: string): Aggregate

聚合階段。計算上一聚合階段輸入到本階段的記錄數(shù),輸出一個記錄,其中指定字段的值為記錄數(shù)。

Aggregate.end(): Promise<Object>

標志聚合操作定義完成,發(fā)起實際聚合操作

Aggregate.geoNear(options: Object): Aggregate

聚合階段。將記錄按照離給定點從近到遠輸出。

Aggregate.group(object: Object): Aggregate

聚合階段。將輸入記錄按給定表達式分組,輸出時每個記錄代表一個分組,每個記錄的 _id 是區(qū)分不同組的 key。輸出記錄中也可以包括累計值,將輸出字段設為累計值即會從該分組中計算累計值。

Aggregate.limit(value: number): Aggregate

聚合階段。限制輸出到下一階段的記錄數(shù)。

Aggregate.lookup(object: Object): Aggregate

聚合階段。聚合階段。聯(lián)表查詢。與同個數(shù)據(jù)庫下的一個指定的集合做 left outer join(左外連接)。對該階段的每一個輸入記錄,lookup 會在該記錄中增加一個數(shù)組字段,該數(shù)組是被聯(lián)表中滿足匹配條件的記錄列表。lookup 會將連接后的結(jié)果輸出給下個階段。

Aggregate.match(object: Object): Aggregate

聚合階段。根據(jù)條件過濾文檔,并且把符合條件的文檔傳遞給下一個流水線階段。

Aggregate.project(object: Object): Aggregate

聚合階段。把指定的字段傳遞給下一個流水線,指定的字段可以是某個已經(jīng)存在的字段,也可以是計算出來的新字段。

Aggregate.replaceRoot(object: Object): Aggregate

聚合階段。指定一個已有字段作為輸出的根節(jié)點,也可以指定一個計算出的新字段作為根節(jié)點。

Aggregate.sample(size: number): Aggregate

聚合階段。隨機從文檔中選取指定數(shù)量的記錄。

Aggregate.skip(value: number): Aggregate

聚合階段。指定一個正整數(shù),跳過對應數(shù)量的文檔,輸出剩下的文檔。

Aggregate.sort(object: Object): Aggregate

聚合階段。根據(jù)指定的字段,對輸入的文檔進行排序。

Aggregate.sortByCount(object: Object): Aggregate

聚合階段。根據(jù)傳入的表達式,將傳入的集合進行分組(group)。然后計算不同組的數(shù)量,并且將這些組按照它們的數(shù)量進行排序,返回排序后的結(jié)果。

Aggregate.unwind(value: string|object): Aggregate

聚合階段。使用指定的數(shù)組字段中的每個元素,對文檔進行拆分。拆分后,文檔會從一個變?yōu)橐粋€或多個,分別對應數(shù)組的每個元素。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號