我的列表可能會收到一個過濾器參數(shù),但此參數(shù)是強制性的。status := r.FormValue("status")var bet []*Betif err := db.C(collectionName).Find(bson.M{"status": status}).Sort("-data-criacao").All(&bet); err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) return}如果未通知參數(shù),則查詢不返回任何結(jié)果。要返回所有結(jié)果,我曾經(jīng)執(zhí)行以下操作 var bet []*Bet if err := db.C(collectionName).Find(nil).Sort("-data-criacao").All(&bet); err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) return}我怎樣才能滿足這兩種選擇?
1 回答

天涯盡頭無女友
TA貢獻1831條經(jīng)驗 獲得超9個贊
只需使用一條if語句根據(jù)是否提供參數(shù)來構(gòu)造您的查詢。
是這樣的:
status := r.FormValue("status")
var bet []*Bet
var filter bson.M
if status != "" {
filter = bson.M{"status": status}
}
err := db.C(collectionName).Find(filter).Sort("-data-criacao").All(&bet)
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
- 1 回答
- 0 關(guān)注
- 156 瀏覽
添加回答
舉報
0/150
提交
取消