我的列表可能會收到一個過濾器參數,但此參數是強制性的。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}如果未通知參數,則查詢不返回任何結果。要返回所有結果,我曾經執行以下操作 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條經驗 獲得超9個贊
只需使用一條if語句根據是否提供參數來構造您的查詢。
是這樣的:
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 關注
- 142 瀏覽
添加回答
舉報
0/150
提交
取消