我參與過 Go 和 MongoDb 項目。其中,我遇到了一個問題。我已經使用 $in 運算符將整數的動態切片 ([]int) 傳遞到查詢中。每件事看起來都很好,但是當這個切片為空時,它會返回一個錯誤“$in 需要一個數組”。但是我將它用作搜索參數,并且如果我傳遞空白數組,則它與所有數組匹配。注意:我使用的是 MongoDB shell 版本 v5.0.3這是我的代碼:var searchedProfiles []intsearchFilter := bson.M{"customer.id": bson.M{"$in": searchedProfiles}}newQry := []bson.M{ {"$lookup": bson.M{ "localField": "cid", "from": "customers", "foreignField": "_id", "as": "customer"}}, {"$match": searchFilter},}如果有人有任何想法,請告訴我。謝謝!
1 回答

蠱毒傳說
TA貢獻1895條經驗 獲得超3個贊
nil
值不會被編組為空數組,因此請確保searchedProfiles
不是nil
但至少是一個空切片:
searchedProfiles = []int{}
這將被編組到一個空數組中,因此您不會收到相關錯誤。
但這不會給你所有的文件,這不會給你任何結果(空列表中沒有任何內容)。
如果沒有搜索到的配置文件,則將其從過濾中排除。
- 1 回答
- 0 關注
- 86 瀏覽
添加回答
舉報
0/150
提交
取消