第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

帶有 $setIntersection 的 Mongodb 聚合管道

帶有 $setIntersection 的 Mongodb 聚合管道

Go
一只萌萌小番薯 2022-06-13 15:32:48
我目前正在使用 golang 創(chuàng)建一個聚合管道,在該管道中我使用“$or”運算符查詢文檔。結(jié)果是一堆未分組的文檔,我需要對它們進行分組,以便我可以進入下一個階段,找到兩個數(shù)據(jù)集之間的交集。然后用于在單獨的集合中進行查找{                "$match": bson.M{                    "userID": bson.M{"$lt": afterID},                    "$or": []bson.M{                        // "follower": myID,                        {"follower": myID},                        {"follower": personID},                    },                },            },            {                "$group": bson.M{                    "_id":       "$follower",                    "followers": bson.M{"$push": "$userID"},                },            },            {                "$project": bson.M{                    "common": bson.M{"$setIntersection": []interface{}{string("$" + myID.Hex() + ".followers"), string("$" + personID.Hex() + ".followers")}},                },            },}問題是,在“項目”階段,我需要以某種方式引用 ID,盡管在進行查詢之前就知道這些 ID,但不能用它們的字符串表示形式替換它們。我知道這一點,因為盡管具有共同的值,但該值始終解析為 null。我怎樣才能實現(xiàn)這一點,或者甚至以一種簡單的方式對我的查詢進行建模,而無需對查詢進行分塊并手動查找交集?
查看完整描述

1 回答

?
一只斗牛犬

TA貢獻1784條經(jīng)驗 獲得超2個贊

在該$group階段之后,將有 2 個文檔在管道中,一個帶有_id:myId和一個帶有_id:personID.


該$project階段一次對單個文檔進行操作,并且無法引用其他文檔中的字段。


為了同時看到兩者,使用第二組階段并將兩個跟隨者數(shù)組推入一個數(shù)組數(shù)組,然后您可以讓項目階段獲得組合數(shù)組的前兩個元素的交集。


            {

                "$group": bson.M{

                    "_id":       "$follower",

                    "followers": bson.M{"$push": "$userID"},

                },

            },

            {

                "$group": bson.M{

                    "_id":       null,

                    "combined": bson.M{"$push": "$followers"},

                },

            },

            {

                "$project": bson.M{

                    "common": bson.M{"$setIntersection": []interface{}{

                       bson.M{"$arrayElemAt":[]interface{}{"$combined",0},

                       bson.M{"$arrayElemAt":[]interface{}{"$combined",1}

                    }},

                },

            },


查看完整回答
反對 回復(fù) 2022-06-13
  • 1 回答
  • 0 關(guān)注
  • 197 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號