1 回答

TA貢獻(xiàn)1893條經(jīng)驗(yàn) 獲得超10個(gè)贊
要在 go lang MongoDB 驅(qū)動(dòng)程序中運(yùn)行$facet,請(qǐng)使用以下代碼,只需替換您的連接字符串和數(shù)據(jù)庫(kù)名稱
package main
import (
"context"
"time"
"fmt"
"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/mongo"
"go.mongodb.org/mongo-driver/mongo/options"
)
func main() {
ctx, _ := context.WithTimeout(context.Background(), 10*time.Second)
client, err := mongo.Connect(ctx, options.Client().ApplyURI("mongodb_connect_string"))
if err != nil {
panic(err)
}
defer client.Disconnect(ctx)
database := client.Database("testdb")
transFront := database.Collection("transFront")
query1 := bson.A{bson.D{{"$match", bson.D{{"appName", "app-38"}}}}, bson.D{{"$count", "count"}}}
query2 := bson.A{bson.D{{"$match", bson.D{{"appName", "app-43"}}}}, bson.D{{"$count", "count"}}}
query3 := bson.A{bson.D{{"$match", bson.D{{"appName", "app--1"}}}}, bson.D{{"$count", "count"}}}
facetStage := bson.D{{"$facet", bson.D{{"query1", query1}, {"query2", query2}, {"query3", query3}}}}
showInfoCursor, err := transFront.Aggregate(ctx, mongo.Pipeline{facetStage})
if err != nil {
panic(err)
}
var showsWithInfo []bson.M
if err = showInfoCursor.All(ctx, &showsWithInfo); err != nil {
panic(err)
}
fmt.Println(showsWithInfo)
}
- 1 回答
- 0 關(guān)注
- 201 瀏覽
添加回答
舉報(bào)