日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)小程序教程:SDK數(shù)據(jù)庫Aggregate·傳遞字段

Aggregate.project(object: Object): Aggregate

支持端:小程序 2.7.4, 云函數(shù) 0.8.1, Web

成都創(chuàng)新互聯(lián)主營江城網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,重慶App定制開發(fā),江城h5重慶小程序開發(fā)搭建,江城網(wǎng)站營銷推廣歡迎江城等地區(qū)企業(yè)咨詢

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

參數(shù)

object: Object

返回值

Aggregate

API 說明

project 的形式如下:

project({
  <表達(dá)式>
})

表達(dá)式可以有以下格式:

格式 說明
<字段>: <1 或 true> 指定包含某個(gè)已有字段
_id: <0 或 false> 舍棄 _id 字段
<字段>: <表達(dá)式> 加入一個(gè)新字段,或者重置某個(gè)已有字段
<字段>: <0 或 false> 舍棄某個(gè)字段(如果你指定舍棄了某個(gè)非 _id 字段,那么在此次 project 中,你不能再使用其它表達(dá)式

指定包含字段

_id 字段是默認(rèn)包含在輸出中的,除此之外其他任何字段,如果想要在輸出中體現(xiàn)的話,必須在 project 中指定; 如果指定包含一個(gè)尚不存在的字段,那么 project 會忽略這個(gè)字段,不會加入到輸出的文檔中;

指定排除字段

如果你在 project 中指定排除某個(gè)字段,那么其它字段都會體現(xiàn)在輸出中; 如果指定排除的是非 _id 字段,那么在本次 project 中,不能再使用其它表達(dá)式;

加入新的字段或重置某個(gè)已有字段

你可以使用一些特殊的表達(dá)式加入新的字段,或重置某個(gè)已有字段。

多層嵌套的字段

有時(shí)有些字段處于多層嵌套的底層,我們可以使用點(diǎn)記法:

"contact.phone.number": <1 or 0 or 表達(dá)式>

也可以直接使用嵌套的格式:

contact: { phone: { number: <1 or 0 or 表達(dá)式> } }

示例

假設(shè)我們有一個(gè) articles 集合,其中含有以下文檔:

{
    "_id": 666,
    "title": "This is title",
    "author": "Nobody",
    "isbn": "123456789",
    "introduction": "......"
}

指定包含某些字段

下面的代碼使用 project,讓輸出只包含 _id、title 和 author 字段:

db.collection('articles')
  .aggregate()
  .project({
    title: 1,
    author: 1
  })
  .end()

輸出如下:

{ "_id" : 666, "title" : "This is title", "author" : "Nobody" }

去除輸出中的 _id 字段

_id 是默認(rèn)包含在輸出中的,如果不想要它,可以指定去除它:

db.collection('articles')
  .aggregate()
  .project({
    _id: 0,  // 指定去除 _id 字段
    title: 1,
    author: 1
  })
  .end()

輸出如下:

{ "title" : "This is title", "author" : "Nobody" }

去除某個(gè)非 _id 字段

我們還可以指定在輸出中去掉某個(gè)非 _id 字段,這樣其它字段都會被輸出:

db.collection('articles')
  .aggregate()
  .project({
    isbn: 0,  // 指定去除 isbn 字段
  })
  .end()

輸出如下,相比輸入,沒有了 isbn 字段:

{
    "_id" : 666,
    "title" : "This is title",
    "author" : "Nobody",
    "introduction": "......"
}

加入計(jì)算出的新字段

假設(shè)我們有一個(gè) students 集合,其中包含以下文檔:

{
    "_id": 1,
    "name": "小明",
    "scores": {
        "chinese": 80,
        "math": 90,
        "english": 70
    }
}

下面的代碼,我們使用 project,在輸出中加入了一個(gè)新的字段 totalScore:

const { sum } = db.command.aggregate
db.collection('students')
  .aggregate()
  .project({
    _id: 0,
    name: 1,
    totalScore: sum([
        "$scores.chinese",
        "$scores.math",
        "$scores.english"
    ])
  })
  .end()

輸出為:

{ "name": "小明", "totalScore": 240 }

加入新的數(shù)組字段

假設(shè)我們有一個(gè) points 集合,包含以下文檔:

{ "_id": 1, "x": 1, "y": 1 }
{ "_id": 2, "x": 2, "y": 2 }
{ "_id": 3, "x": 3, "y": 3 }

下面的代碼,我們使用 project,把 x 和 y 字段,放入到一個(gè)新的數(shù)組字段 coordinate 中:

db.collection('points')
  .aggregate()
  .project({
    coordinate: ["$x", "$y"]
  })
  .end()

輸出如下:

{ "_id": 1, "coordinate": [1, 1] }
{ "_id": 2, "coordinate": [2, 2] }
{ "_id": 3, "coordinate": [3, 3] }

網(wǎng)頁名稱:創(chuàng)新互聯(lián)小程序教程:SDK數(shù)據(jù)庫Aggregate·傳遞字段
路徑分享:http://www.dlmjj.cn/article/dpccgpp.html