亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

如何刪除 golang mongodb 組聚合中的嵌套字段?

如何刪除 golang mongodb 組聚合中的嵌套字段?

慕蓋茨4494581 2022-09-12 16:27:40
我是戈蘭語和蒙古語的初學者,我使用聚合組 mongodb 刪除嵌套字段時遇到了問題。我剛剛閱讀了mongodb文檔,我認為刪除字段可以用mongodb$project但是我找不到這樣做的例子。這是查詢的結果{    "data": [        {            "_id": "60db0920a2f13ba5037c90f5",            "email": "[email protected]",            "is_verified": false,            "password": "...",            "username": "jodi"        }    ],    "page": 1,    "per_page": 3,    "total": 1}如何刪除密碼字段?我應該如何處理此代碼?q := c.Query("q")perPage, err := strconv.Atoi(c.Query("per_page"))if err != nil || perPage < 1 {    perPage = 10}page, err := strconv.Atoi(c.Query("page"))if err != nil || page < 1 {    page = 1}startIndex, err := strconv.Atoi(c.Query("page"))if err != nil || startIndex < 1 {    startIndex = 0} else if startIndex > 0 && page < 1 {    startIndex = (startIndex * perPage) - perPage} else {    startIndex = 0}matchStage := bson.D{{"$match", bson.D{{}}}}if q != "" {    matchStage = bson.D{        {"$match", bson.D{            {"username", q},        }},    }}groupStage := bson.D{    {"$group", bson.D{        {"_id", bson.D{{"_id", "null"}}},        {"total", bson.D{{"$sum", 1}}},        {"data", bson.D{{"$push", "$$ROOT"}}},        {"page", bson.D{{"$first", page}}},        {"per_page", bson.D{{"$first", perPage}}},    }}}projectStage := bson.D{    {"$project", bson.D{        {"_id", 0},        {"total", 1},        {"page", 1},        {"per_page", 1},        {"data", bson.D{{"$slice", []interface{}{"$data", startIndex, perPage}}}},    }}}result, err := userCollection.Aggregate(ctx,    mongo.Pipeline{        matchStage, groupStage, projectStage,    },)
查看完整描述

2 回答

?
人到中年有點甜

TA貢獻1895條經驗 獲得超7個贊

您可以顯式指定要在 內部文檔中看到的哪些字段。蒙戈文檔:$project嵌入的文檔字段data



查看完整回答
反對 回復 2022-09-12
?
躍然一笑

TA貢獻1826條經驗 獲得超6個贊

我在mongo內部添加了另一個$project。管道并解決問題。


removeGroupItem := bson.D{

        {"$project", bson.D{

            {"data.password", 0},

        }},

}

result, err := userCollection.Aggregate(ctx,

    mongo.Pipeline{

        matchStage, groupStage, projectStage, removeGroupItem

    },

)


查看完整回答
反對 回復 2022-09-12
  • 2 回答
  • 0 關注
  • 97 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號