我参与过 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 关注
- 69 浏览
添加回答
举报
0/150
提交
取消