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

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

如何使用golang根據用戶條件對mongodb集合應用多個過濾器

如何使用golang根據用戶條件對mongodb集合應用多個過濾器

Go
侃侃爾雅 2022-08-15 19:37:34
在我的前端,用戶可以根據日期范圍和/或目的應用篩選器。我如何生成MongoDB過濾器,以便如果用戶在日期范圍內傳遞,它只將其用作過濾器?如果它只是目的,它只使用目的,如果兩者兼而有之,則同時應用兩個過濾器。我正在使用golang。這是我的代碼var filterData map[string]interface{}if purpose != "" {        filterData = bson.M{            "purpose": purpose,     }var filterDate map[string]interface{}if //condition for date range{filterDate = bson.M{        "paymentDate": bson.M{            "$gte": startdate,            "$lt":  enddate,        },}}//here i cant apply bothcursor, err = collection.Find(conn.DatabaseContext, findQuery)
查看完整描述

1 回答

?
慕姐8265434

TA貢獻1813條經驗 獲得超2個贊

為過濾器使用單個映射(例如),并且僅為用戶提供的篩選條件添加元素。bson.M


例如:


var purpose string

var startDate, endDate time.Time


filter := bson.M{}

if purpose != "" {

    filter["purpose"] = purpose

}

if !startDate.IsZero() && !endDate.IsZero() {

    filter["paymentDate"] = bson.M{

        "$gte": startDate,

        "$lt":  endDate,

    }

}


cursor, err = collection.Find(ctx, filter)


查看完整回答
反對 回復 2022-08-15
  • 1 回答
  • 0 關注
  • 183 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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