我參與過 Go 和 MongoDb 項目。其中,我遇到了一個問題。我已經(jīng)使用 $in 運算符將整數(shù)的動態(tài)切片 ([]int) 傳遞到查詢中。每件事看起來都很好,但是當(dāng)這個切片為空時,它會返回一個錯誤“$in 需要一個數(shù)組”。但是我將它用作搜索參數(shù),并且如果我傳遞空白數(shù)組,則它與所有數(shù)組匹配。注意:我使用的是 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貢獻(xiàn)1895條經(jīng)驗 獲得超3個贊
nil
值不會被編組為空數(shù)組,因此請確保searchedProfiles
不是nil
但至少是一個空切片:
searchedProfiles = []int{}
這將被編組到一個空數(shù)組中,因此您不會收到相關(guān)錯誤。
但這不會給你所有的文件,這不會給你任何結(jié)果(空列表中沒有任何內(nèi)容)。
如果沒有搜索到的配置文件,則將其從過濾中排除。
- 1 回答
- 0 關(guān)注
- 91 瀏覽
添加回答
舉報
0/150
提交
取消