在我的前端,用戶可以根據日期范圍和/或目的應用篩選器。我如何生成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)
- 1 回答
- 0 關注
- 183 瀏覽
添加回答
舉報
0/150
提交
取消