欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

目錄

柚子快報(bào)激活碼778899分享:數(shù)據(jù)庫(kù) MongoDB聚合操作

柚子快報(bào)激活碼778899分享:數(shù)據(jù)庫(kù) MongoDB聚合操作

http://yzkb.51969.com/

文章目錄

聚合操作單一作用聚合聚合管道什么是 MongoDB 聚合框架管道(Pipeline)和階段(Stage)常用的管道聚合階段聚合表達(dá)式數(shù)據(jù)準(zhǔn)備$project$match$count$group

accumulator操作符$unwind$limit$skip$sort$lookup案例聚合操作案例1聚合操作案例2

MapReduce

聚合操作

聚合操作處理數(shù)據(jù)記錄并返回計(jì)算結(jié)果。聚合操作組值來(lái)自多個(gè)文檔,可以對(duì)分組數(shù)據(jù)執(zhí)行各種操作以返回單個(gè)結(jié)果。聚合操作包含三類:?jiǎn)我蛔饔镁酆稀⒕酆瞎艿?、MapReduce。

單一作用聚合:提供了對(duì)常見(jiàn)聚合過(guò)程的簡(jiǎn)單訪問(wèn),操作都從單個(gè)集合聚合文檔。聚合管道是一個(gè)數(shù)據(jù)聚合的框架,模型基于數(shù)據(jù)處理流水線的概念。文檔進(jìn)入多級(jí)管道,將 文檔轉(zhuǎn)換為聚合結(jié)果。MapReduce操作具有兩個(gè)階段:處理每個(gè)文檔并向每個(gè)輸入文檔發(fā)射一個(gè)或多個(gè)對(duì)象的map階段,以及reduce組合map操作的輸出階段。

單一作用聚合

MongoDB提供 db.collection.estimatedDocumentCount(), db.collection.count(), db.collection.distinct() 這類單一作用的聚合函數(shù)。 所有這些操作都聚合來(lái)自單個(gè)集合的文檔。雖然這些操作提供了對(duì)公共聚合過(guò)程的簡(jiǎn)單訪問(wèn),但它們?nèi)狈酆瞎艿篮蚼ap-Reduce的靈活性和功能。

db.collection.estimatedDocumentCount()返回集合或視圖中所有文檔的計(jì)數(shù)db.collection.count()返回與find()集合或視圖的查詢匹配的文檔計(jì)數(shù) 。等同于 db.collection.find(query).count()構(gòu)造db.collection.distinct()在單個(gè)集合或視圖中查找指定字段的不同值,并在數(shù)組中返回結(jié)果。

#檢索books集合中所有文檔的計(jì)數(shù)

db.books.estimatedDocumentCount()

#計(jì)算與查詢匹配的所有文檔

db.books.count({favCount:{$gt:50}})

#返回不同type的數(shù)組

db.books.distinct("type")

#返回收藏?cái)?shù)大于90的文檔不同type的數(shù)組

db.books.distinct("type",{favCount:{$gt:90}})

注意:在分片群集上,如果存在孤立文檔或正在進(jìn)行塊遷移,則db.collection.count()沒(méi)有查詢謂詞可能導(dǎo)致計(jì)數(shù)不準(zhǔn)確。要避免這些情況,請(qǐng)?jiān)诜制杭鲜褂?db.collection.aggregate()方法。

聚合管道

什么是 MongoDB 聚合框架

MongoDB 聚合框架(Aggregation Framework)是一個(gè)計(jì)算框架,它可以:

作用在一個(gè)或幾個(gè)集合上;對(duì)集合中的數(shù)據(jù)進(jìn)行的一系列運(yùn)算;將這些數(shù)據(jù)轉(zhuǎn)化為期望的形式;

從效果而言,聚合框架相當(dāng)于 SQL 查詢中的GROUP BY、 LEFT OUTER JOIN 、 AS等。

管道(Pipeline)和階段(Stage)

整個(gè)聚合運(yùn)算過(guò)程稱為管道(Pipeline),它是由多個(gè)階段(Stage)組成的, 每個(gè)管道:

接受一系列文檔(原始數(shù)據(jù));每個(gè)階段對(duì)這些文檔進(jìn)行一系列運(yùn)算;結(jié)果文檔輸出給下一個(gè)階段;

聚合管道操作語(yǔ)法

pipeline = [$stage1, $stage2, ...$stageN];

db.collection.aggregate(pipeline, {options})

pipelines 一組數(shù)據(jù)聚合階段。除

o

u

t

out、

out、Merge和$geonear階段之外,每個(gè)階段都可以在管道中出現(xiàn)多次。options 可選,聚合操作的其他參數(shù)。包含:查詢計(jì)劃、是否使用臨時(shí)文件、 游標(biāo)、最大操作時(shí)間、讀寫策略、強(qiáng)制索引等等

常用的管道聚合階段

聚合管道包含非常豐富的聚合階段,下面是最常用的聚合階段

階段描述SQL等價(jià)運(yùn)算符$match篩選條件WHERE$project投影AS$lookup左外連接LEFT OUTER JOIN$sort排序ORDER BY$group分組GROUP BY

s

k

i

p

/

skip/

skip/limit分頁(yè)$unwind展開(kāi)數(shù)組$graphLookup圖搜索

f

a

c

e

t

/

facet/

facet/bucket分面搜索

文檔:Aggregation Pipeline Stages — MongoDB Manual

聚合表達(dá)式

獲取字段信息

$ : 用 $ 指示字段路徑

$. : 使用 $ 和 . 來(lái)指示內(nèi)嵌文檔的路徑

常量表達(dá)式

$literal : : 指示常量

系統(tǒng)變量表達(dá)式

$$ 使用 $$ 指示系統(tǒng)變量

$$CURRENT 指示管道中當(dāng)前操作的文檔

數(shù)據(jù)準(zhǔn)備

準(zhǔn)備數(shù)據(jù)集,執(zhí)行腳本

var tags = ["nosql","mongodb","document","developer","popular"];

var types = ["technology","sociality","travel","novel","literature"];

var books=[];

for(var i=0;i<50;i++){

var typeIdx = Math.floor(Math.random()*types.length);

var tagIdx = Math.floor(Math.random()*tags.length);

var tagIdx2 = Math.floor(Math.random()*tags.length);

var favCount = Math.floor(Math.random()*100);

var username = "xx00"+Math.floor(Math.random()*10);

var age = 20 + Math.floor(Math.random()*15);

var book = {

title: "book-"+i,

type: types[typeIdx],

tag: [tags[tagIdx],tags[tagIdx2]],

favCount: favCount,

author: {name:username,age:age}

};

books.push(book)

}

db.books.insertMany(books);

$project

投影操作, 將原始字段投影成指定名稱, 如將集合中的 title 投影成 name

db.books.aggregate([{$project:{name:"$title"}}])

$project 可以靈活控制輸出文檔的格式,也可以剔除不需要的字段

db.books.aggregate([{$project:{name:"$title",_id:0,type:1,author:1}}])

從嵌套文檔中排除字段

db.books.aggregate([

{$project:{name:"$title",_id:0,type:1,"author.name":1}}

])

或者

db.books.aggregate([

{$project:{name:"$title",_id:0,type:1,author:{name:1}}}

])

$match

m

a

t

c

h

用于對(duì)文檔進(jìn)行篩選,之后可以在得到的文檔子集上做聚合,

match用于對(duì)文檔進(jìn)行篩選,之后可以在得到的文檔子集上做聚合,

match用于對(duì)文檔進(jìn)行篩選,之后可以在得到的文檔子集上做聚合,match可以使用除了地理空間之外的所有常規(guī)查詢操作符,在實(shí)際應(yīng)用中盡可能將

m

a

t

c

h

放在管道的前面位置。這樣有兩個(gè)好處:一是可以快速將不需要的文檔過(guò)濾掉,以減少管道的工作量;二是如果再投射和分組之前執(zhí)行

match放在管道的前面位置。這樣有兩個(gè)好處:一是可以快速將不需要的文檔過(guò)濾掉,以減少管道的工作量;二是如果再投射和分組之前執(zhí)行

match放在管道的前面位置。這樣有兩個(gè)好處:一是可以快速將不需要的文檔過(guò)濾掉,以減少管道的工作量;二是如果再投射和分組之前執(zhí)行match,查詢可以使用索引。

db.books.aggregate([{$match:{type:"technology"}}])

篩選管道操作和其他管道操作配合時(shí)候時(shí),盡量放到開(kāi)始階段,這樣可以減少后續(xù)管道操作符要操作的文檔數(shù),提升效率

db.books.aggregate([

{$match:{type:"technology"}},

{$project:{name:"$title",_id:0,type:1,author:{name:1}}}

])

$count

計(jì)數(shù)并返回與查詢匹配的結(jié)果數(shù)

db.books.aggregate([

{$match:{type:"technology"}},

{$count: "type_count"}

])

$match階段篩選出type匹配technology的文檔,并傳到下一階段; $count階段返回聚合管道中剩余文檔的計(jì)數(shù),并將該值分配給type_count

$group

按指定的表達(dá)式對(duì)文檔進(jìn)行分組,并將每個(gè)不同分組的文檔輸出到下一個(gè)階段。輸出文檔包含一個(gè)_id字段,該字段按鍵包含不同的組。輸出文檔還可以包含計(jì)算字段,該字段保存由$group的_id字段分組的一些accumulator表達(dá)式的值。 $group不會(huì)輸出具體的文檔而只是統(tǒng)計(jì)信息。

{ $group: { _id: , : { : }, ... } }

_id字段是必填的;但是,可以指定_id值為null來(lái)為整個(gè)輸入文檔計(jì)算累計(jì)值。剩余的計(jì)算字段是可選的,并使用運(yùn)算符進(jìn)行計(jì)算。_id和表達(dá)式可以接受任何有效的表達(dá)式。

accumulator操作符

名稱描述類比sql$avg計(jì)算均值avg$first返回每組第一個(gè)文檔,如果有排序,按照排序,如果沒(méi)有按照默認(rèn)的存儲(chǔ)的順序的第一個(gè)文檔。limit 0,1$last返回每組最后一個(gè)文檔,如果有排序,按照排序,如果沒(méi)有按照默認(rèn)的存儲(chǔ)的順序的最后個(gè)文檔。-$max根據(jù)分組,獲取集合中所有文檔對(duì)應(yīng)值得最大值。max$min根據(jù)分組,獲取集合中所有文檔對(duì)應(yīng)值得最小值。min$push將指定的表達(dá)式的值添加到一個(gè)數(shù)組中。-$addToSet將表達(dá)式的值添加到一個(gè)集合中(無(wú)重復(fù)值,無(wú)序)。-$sum計(jì)算總和sum$stdDevPop返回輸入值的總體標(biāo)準(zhǔn)偏差(population standard deviation)-$stdDevSamp返回輸入值的樣本標(biāo)準(zhǔn)偏差(the sample standard deviation)-

g

r

o

u

p

階段的內(nèi)存限制為

100

M

。默認(rèn)情況下,如果

s

t

a

g

e

超過(guò)此限制,

group階段的內(nèi)存限制為100M。默認(rèn)情況下,如果stage超過(guò)此限制,

group階段的內(nèi)存限制為100M。默認(rèn)情況下,如果stage超過(guò)此限制,group將產(chǎn)生錯(cuò)誤。但是,要允許處理大型數(shù)據(jù)集,請(qǐng)將allowDiskUse選項(xiàng)設(shè)置為true以啟用$group操作以寫入臨時(shí)文件。book的數(shù)量,收藏總數(shù)和平均值

db.books.aggregate([

{$group:{_id:null,count:{$sum:1},pop:{$sum:"$favCount"},avg:{$avg:"$favCount"}}}

])

統(tǒng)計(jì)每個(gè)作者的book收藏總數(shù)

db.books.aggregate([

{$group:{_id:"$author.name",pop:{$sum:"$favCount"}}}

])

統(tǒng)計(jì)每個(gè)作者的每本book的收藏?cái)?shù)

db.books.aggregate([

{$group:{_id:{name:"$author.name",title:"$title"},pop:{$sum:"$favCount"}}}

])

每個(gè)作者的book的type合集

db.books.aggregate([

{$group:{_id:"$author.name",types:{$addToSet:"$type"}}}

])

$unwind

可以將數(shù)組拆分為單獨(dú)的文檔v3.2+支持如下語(yǔ)法:

{

$unwind:

{

#要指定字段路徑,在字段名稱前加上$符并用引號(hào)括起來(lái)。

path: ,

#可選,一個(gè)新字段的名稱用于存放元素的數(shù)組索引。該名稱不能以$開(kāi)頭。

includeArrayIndex: ,

#可選,default :false,若為true,如果路徑為空,缺少或?yàn)榭諗?shù)組,則$unwind輸出文檔

preserveNullAndEmptyArrays:

} }

姓名為xx006的作者的book的tag數(shù)組拆分為多個(gè)文檔

db.books.aggregate([

{$match:{"author.name":"xx006"}},

{$unwind:"$tag"}

])

db.books.aggregate([

{$match:{"author.name":"xx006"}}

])

每個(gè)作者的book的tag合集

db.books.aggregate([

{$unwind:"$tag"},

{$group:{_id:"$author.name",types:{$addToSet:"$tag"}}}

])

案例示例數(shù)據(jù)

db.books.insert([

{

"title" : "book-51",

"type" : "technology",

"favCount" : 11,

"tag":[],

"author" : {

"name" : "fox",

"age" : 28

}

},{

"title" : "book-52",

"type" : "technology",

"favCount" : 15,

"author" : {

"name" : "fox",

"age" : 28

}

},{

"title" : "book-53",

"type" : "technology",

"tag" : [

"nosql",

"document"

],

"favCount" : 20,

"author" : {

"name" : "fox",

"age" : 28

}

}])

測(cè)試

# 使用includeArrayIndex選項(xiàng)來(lái)輸出數(shù)組元素的數(shù)組索引

db.books.aggregate([

{$match:{"author.name":"fox"}},

{$unwind:{path:"$tag", includeArrayIndex: "arrayIndex"}}

])

# 使用preserveNullAndEmptyArrays選項(xiàng)在輸出中包含缺少size字段,null或空數(shù)組的文檔

db.books.aggregate([

{$match:{"author.name":"fox"}},

{$unwind:{path:"$tag", preserveNullAndEmptyArrays: true}}

])

$limit

限制傳遞到管道中下一階段的文檔數(shù)

db.books.aggregate([

{$limit : 5 }

])

此操作僅返回管道傳遞給它的前5個(gè)文檔。

l

i

m

i

t

對(duì)其傳遞的文檔內(nèi)容沒(méi)有影響。

<

b

r

/

>

注意:當(dāng)

limit對(duì)其傳遞的文檔內(nèi)容沒(méi)有影響。
注意:當(dāng)

limit對(duì)其傳遞的文檔內(nèi)容沒(méi)有影響。
注意:當(dāng)sort在管道中的

l

i

m

i

t

之前立即出現(xiàn)時(shí),

limit之前立即出現(xiàn)時(shí),

limit之前立即出現(xiàn)時(shí),sort操作只會(huì)在過(guò)程中維持前n個(gè)結(jié)果,其中n是指定的限制,而MongoDB只需要將n個(gè)項(xiàng)存儲(chǔ)在內(nèi)存中。

$skip

跳過(guò)進(jìn)入stage的指定數(shù)量的文檔,并將其余文檔傳遞到管道中的下一個(gè)階段

db.books.aggregate([

{$skip : 5 }

])

此操作將跳過(guò)管道傳遞給它的前5個(gè)文檔。 $skip對(duì)沿著管道傳遞的文檔的內(nèi)容沒(méi)有影響。

$sort

對(duì)所有輸入文檔進(jìn)行排序,并按排序順序?qū)⑺鼈兎祷氐焦艿?。語(yǔ)法:

{ $sort: { : , : ... } }

要對(duì)字段進(jìn)行排序,請(qǐng)將排序順序設(shè)置為1或-1,以分別指定升序或降序排序,如下例所示:

db.books.aggregate([

{$sort : {favCount:-1,title:1}}

])

$lookup

Mongodb 3.2版本新增,主要用來(lái)實(shí)現(xiàn)多表關(guān)聯(lián)查詢, 相當(dāng)關(guān)系型數(shù)據(jù)庫(kù)中多表關(guān)聯(lián)查詢。每個(gè)輸入待處理的文檔,經(jīng)過(guò)$lookup 階段的處理,輸出的新文檔中會(huì)包含一個(gè)新生成的數(shù)組(可根據(jù)需要命名新key )。數(shù)組列存放的數(shù)據(jù)是來(lái)自被Join集合的適配文檔,如果沒(méi)有,集合為空(即 為[ ])語(yǔ)法:

db.collection.aggregate([{

$lookup: {

from: "",

localField: "",

foreignField: "",

as: ""

}

})

from同一個(gè)數(shù)據(jù)庫(kù)下等待被Join的集合。localField源集合中的match值,如果輸入的集合中,某文檔沒(méi)有 localField這個(gè)Key(Field),在處理的過(guò)程中,會(huì)默認(rèn)為此文檔含有 localField:null的鍵值對(duì)。foreignField待Join的集合的match值,如果待Join的集合中,文檔沒(méi)有foreignField值,在處理的過(guò)程中,會(huì)默認(rèn)為此文檔含有 foreignField:null的鍵值對(duì)。as為輸出文檔的新增值命名。如果輸入的集合中已存在該值,則會(huì)覆蓋掉

注意:null = null 此為真其語(yǔ)法功能類似于下面的偽SQL語(yǔ)句:

SELECT *,

FROM collection

WHERE IN (SELECT *

FROM

WHERE = );

案例

數(shù)據(jù)準(zhǔn)備

db.customer.insert({customerCode:1,name:"customer1",phone:"13112345678",address:"test1"})

db.customer.insert({customerCode:2,name:"customer2",phone:"13112345679",address:"test2"})

db.order.insert({orderId:1,orderCode:"order001",customerCode:1,price:200})

db.order.insert({orderId:2,orderCode:"order002",customerCode:2,price:400})

db.orderItem.insert({itemId:1,productName:"apples",qutity:2,orderId:1})

db.orderItem.insert({itemId:2,productName:"oranges",qutity:2,orderId:1})

db.orderItem.insert({itemId:3,productName:"mangoes",qutity:2,orderId:1})

db.orderItem.insert({itemId:4,productName:"apples",qutity:2,orderId:2})

db.orderItem.insert({itemId:5,productName:"oranges",qutity:2,orderId:2})

db.orderItem.insert({itemId:6,productName:"mangoes",qutity:2,orderId:2})

關(guān)聯(lián)查詢

db.customer.aggregate([

{$lookup: {

from: "order",

localField: "customerCode",

foreignField: "customerCode",

as: "customerOrder"

}

}

])

db.order.aggregate([

{$lookup: {

from: "customer",

localField: "customerCode",

foreignField: "customerCode",

as: "curstomer"

}

},

{$lookup: {

from: "orderItem",

localField: "orderId",

foreignField: "orderId",

as: "orderItem"

}

}

])

聚合操作案例1

統(tǒng)計(jì)每個(gè)分類的book文檔數(shù)量

db.books.aggregate([

{$group:{_id:"$type",total:{$sum:1}}},

{$sort:{total:-1}}

])

標(biāo)簽的熱度排行,標(biāo)簽的熱度則按其關(guān)聯(lián)book文檔的收藏?cái)?shù)(favCount)來(lái)計(jì)算

db.books.aggregate([

{$match:{favCount:{$gt:0}}},

{$unwind:"$tag"},

{$group:{_id:"$tag",total:{$sum:"$favCount"}}},

{$sort:{total:-1}}

])

$match階段:用于過(guò)濾favCount=0的文檔。$unwind階段:用于將標(biāo)簽數(shù)組進(jìn)行展開(kāi),這樣一個(gè)包含3個(gè)標(biāo)簽的文檔會(huì)被拆解為3個(gè)條目。

g

r

o

u

p

階段:對(duì)拆解后的文檔進(jìn)行分組計(jì)算,

group階段:對(duì)拆解后的文檔進(jìn)行分組計(jì)算,

group階段:對(duì)拆解后的文檔進(jìn)行分組計(jì)算,sum:"$favCount"表示按favCount字段進(jìn)行累加。$sort階段:接收分組計(jì)算的輸出,按total得分進(jìn)行排序。

統(tǒng)計(jì)book文檔收藏?cái)?shù)[0,10),[10,60),[60,80),[80,100),[100,+∞)

db.books.aggregate([{

$bucket:{

groupBy:"$favCount",

boundaries:[0,10,60,80,100],

default:"other",

output:{"count":{$sum:1}}

}

}])

聚合操作案例2

導(dǎo)入郵政編碼數(shù)據(jù)集:https://media.mongodb.org/zips.json使用mongoimport工具導(dǎo)入數(shù)據(jù)

mongoimport -h 192.168.65.174 -d test -u fox -p fox --authenticationDatabase=admin -c zips --file D:\ProgramData\mongodb\import\zips.json

h,–host :代表遠(yuǎn)程連接的數(shù)據(jù)庫(kù)地址,默認(rèn)連接本地Mongo數(shù)據(jù)庫(kù); –port:代表遠(yuǎn)程連接的數(shù)據(jù)庫(kù)的端口,默認(rèn)連接的遠(yuǎn)程端口27017; -u,–username:代表連接遠(yuǎn)程數(shù)據(jù)庫(kù)的賬號(hào),如果設(shè)置數(shù)據(jù)庫(kù)的認(rèn)證,需要指定用戶賬號(hào); -p,–password:代表連接數(shù)據(jù)庫(kù)的賬號(hào)對(duì)應(yīng)的密碼; -d,–db:代表連接的數(shù)據(jù)庫(kù); -c,–collection:代表連接數(shù)據(jù)庫(kù)中的集合; -f, --fields:代表導(dǎo)入集合中的字段; –type:代表導(dǎo)入的文件類型,包括csv和json,tsv文件,默認(rèn)json格式; –file:導(dǎo)入的文件名稱 –headerline:導(dǎo)入csv文件時(shí),指明第一行是列名,不需要導(dǎo)入;

返回人口超過(guò)1000萬(wàn)的州

db.zips.aggregate( [

{ $group: { _id: "$state", totalPop: { $sum: "$pop" } } },

{ $match: { totalPop: { $gte: 10*1000*1000 } } }

] )

這個(gè)聚合操作的等價(jià)SQL是: SELECT state, SUM(pop) AS totalPop FROM zips GROUP BY state HAVING totalPop >= (1010001000) 返回各州平均城市人口

SELECT state, SUM(pop) AS totalPop

FROM zips

GROUP BY state

HAVING totalPop >= (10*1000*1000)

按州返回最大和最小的城市

db.zips.aggregate( [

{ $group:

{

_id: { state: "$state", city: "$city" },

pop: { $sum: "$pop" }

}

},

{ $sort: { pop: 1 } },

{ $group:

{

_id : "$_id.state",

biggestCity: { $last: "$_id.city" },

biggestPop: { $last: "$pop" },

smallestCity: { $first: "$_id.city" },

smallestPop: { $first: "$pop" }

}

},

{ $project:

{ _id: 0,

state: "$_id",

biggestCity: { name: "$biggestCity", pop: "$biggestPop" },

smallestCity: { name: "$smallestCity", pop: "$smallestPop" }

}

}

] )

MapReduce

MapReduce操作將大量的數(shù)據(jù)處理工作拆分成多個(gè)線程并行處理,然后將結(jié)果合并在一起。MongoDB提供的Map-Reduce非常靈活,對(duì)于大規(guī)模數(shù)據(jù)分析也相當(dāng)實(shí)用。MapReduce具有兩個(gè)階段:

將具有相同Key的文檔數(shù)據(jù)整合在一起的map階段組合map操作的結(jié)果進(jìn)行統(tǒng)計(jì)輸出的reduce階段

MapReduce的基本語(yǔ)法

db.collection.mapReduce(

function() {emit(key,value);}, //map 函數(shù)

function(key,values) {return reduceFunction}, //reduce 函數(shù)

{

out: ,

query: ,

sort: ,

limit: ,

finalize: ,

scope: ,

jsMode: ,

verbose: ,

bypassDocumentValidation:

}

)

map,將數(shù)據(jù)拆分成鍵值對(duì),交給reduce函數(shù)reduce,根據(jù)鍵將值做統(tǒng)計(jì)運(yùn)算out,可選,將結(jié)果匯入指定表quey,可選篩選數(shù)據(jù)的條件,篩選的數(shù)據(jù)送入mapsort,排序完后,送入maplimit,限制送入map的文檔數(shù)finalize,可選,修改reduce的結(jié)果后進(jìn)行輸出scope,可選,指定map、reduce、finalize的全局變量jsMode,可選,默認(rèn)false。在mapreduce過(guò)程中是否將數(shù) 據(jù)轉(zhuǎn)換成bson格式。verbose,可選,是否在結(jié)果中顯示時(shí)間,默認(rèn)falsebypassDocmentValidation,可選,是否略過(guò)數(shù)據(jù)校驗(yàn)

統(tǒng)計(jì)type為travel的不同作者的book文檔收藏?cái)?shù)

db.books.mapReduce(

function(){emit(this.type,this.favCount)},

function(key,values){return Array.sum(values)},

{

query:{type:"travel"},

out: "books_favCount"

}

)

從MongoDB 5.0開(kāi)始,map-reduce操作已被棄用。聚合管道比映射-reduce操作提供更好的性能和可用性。Map-reduce操作可以使用聚合管道操作符重寫,例如

g

r

o

u

p

、

group、

group、merge等。dn

柚子快報(bào)激活碼778899分享:數(shù)據(jù)庫(kù) MongoDB聚合操作

http://yzkb.51969.com/

推薦鏈接

評(píng)論可見(jiàn),查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。

轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://m.gantiao.com.cn/post/18946551.html

發(fā)布評(píng)論

您暫未設(shè)置收款碼

請(qǐng)?jiān)谥黝}配置——文章設(shè)置里上傳

掃描二維碼手機(jī)訪問(wèn)

文章目錄