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

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

如何使用 mongo-driver/mongo 查找具有多個(gè)條件的文檔

如何使用 mongo-driver/mongo 查找具有多個(gè)條件的文檔

Go
慕后森 2023-08-07 11:11:39
查詢以下數(shù)據(jù)時(shí),返回的游標(biāo)為空。而滿足條件的文檔有上百個(gè)。 {  "_id": "5dd68c51a39809125944ffba",  "status": "success",  "balance": "0.000",  "request_params": {   "username": "test_user",   "service_code": "MR" }使用下面的代碼MongoDB 驅(qū)動程序“go.mongodb.org/mongo-driver/mongo”func saveLog(data Log) bool {    mongo, err := openMongo()    if err != nil {        log.Println(err)        fmt.Println("Connection failed")        return false    } else {        LogCollection := mongo.Database(LogDb).Collection(CollectionLog)        insertedApi, err := LogCollection.InsertOne(context.TODO(), data)        if err != nil {            log.Println(err)            fmt.Println("Insert failed")            return false        } else {            log.Println(insertedApi.InsertedID)            return true        }    }}func parseLog() {    db, err := openMongo()    if err != nil {        fmt.Println(err)        fmt.Println("Connection failed")        return    } else {        logCollection := db.Database(LogDb).Collection(CollectionLog)        var results [] *Log        find := bson.D{{"status","success"},{"request_params",bson.D{{"username","test_user"}}}}        fmt.Println(find)        cur, err := logCollection.Find(context.TODO(), find)        if err != nil {            log.Fatal(err)        }else {            for cur.Next(context.TODO()) {                var elem Log                err := cur.Decode(&elem)                if err != nil {                    fmt.Println("Parse error : ",err)                }                fmt.Println("Log : ",elem)                results = append(results, &elem)            }        }    }}日志寫入saveLog(Log{"success","0.000",RequestParams{"test_user","MR"}})日志讀取parseLog()日志結(jié)構(gòu)type Log struct {    Status string `bson:"status"`    Balance string `bson:"balance"`    RequestParams RequestParams `bson:"request_params"`}type RequestParams struct {    Username string `bson:"username"`    ServiceCode     string `bson:"service_code"`}MongoDB 數(shù)據(jù)
查看完整描述

1 回答

?
慕尼黑5688855

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超2個(gè)贊

這里的問題是由于查詢過濾器造成的。以下查詢之間存在差異:


// Query A: {"status": "success", "request_params": {"username":"test_user"}}

find := bson.D{{"status","success"},{"request_params",bson.D{{"username","test_user"}}}}


// Query B: {"status": "success", "request_params.username":"test_user"}

find := bson.D{{"status","success"},{"request_params.username","test_user"}}

查詢 A 意味著您希望匹配request_params值對象完全等于 的精確文檔{"username":"test_user"}。您的收藏中沒有任何文檔符合此條件。該文檔還包含{"service_code":"MR"}.?而查詢 B 使用點(diǎn)表示法,這意味著您希望匹配包含值 的request_params字段。{"username":"test_user"}

查看完整回答
反對 回復(fù) 2023-08-07
  • 1 回答
  • 0 關(guān)注
  • 157 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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