Mongoose使用$in传入逗号拼接数字字符串查询无结果如何解决?
问题原因
- 你的变量
test是逗号拼接的字符串类型"6,11",直接放入$in的数组中实际生成的结构是["6,11"],数组内仅包含1个字符串元素,和你需要的数字数组[6,11]结构完全不符 - 你的Mongoose Schema中
number字段定义为Number类型,就算把字符串拆分为["6","11"],字符串类型和数字类型也无法匹配,因此查询无返回结果
解决方案
先将字符串拆分并转换为数字类型的数组,再传入$in中执行查询即可,示例代码如下:
var test = "6,11" // 拆分字符串并转为数字数组 const numberList = test.split(',').map(item => parseInt(item.trim(), 10)) // 可选:过滤非法非数字值,避免异常查询 const validNumberList = numberList.filter(num => !isNaN(num)) // 执行查询 Player.find({number: { $in: validNumberList }}, (err, docs) => { // 后续业务逻辑 })
内容的提问来源于stack exchange,提问作者Clemen Gronver
相关产品推荐
相关产品推荐

