我的列表可能会收到一个过滤器参数,但此参数是强制性的。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 关注
- 96 浏览
添加回答
举报
0/150
提交
取消