ColdFusion 2021 Hotfix12升级后MongoDB查询返回空值问题求助
问题排查与修复
代码错误核心:数组索引使用不当
你的代码中调用toArray()[1],但limit(1)会限制查询结果最多1条数据,toArray()将结果转为数组后,数组长度仅为1。由于数组索引从0开始计数,[1]属于越界访问,这就是ColdFusion 2021 Hotfix 12返回空响应的原因。版本差异原因:
ColdFusion 2021 Hotfix 12修复了MongoDB驱动的索引处理逻辑,之前的Hotfix 10可能存在兼容漏洞,允许越界索引返回第一条数据;而Hotfix 12严格遵循数组索引规则,越界访问直接返回空值。修正后的代码:
db = getmongoservice("xxx").db("xxx"); // 创建数据库连接 response = db.xxx.find().sort( { createdAt: -1 } ).limit(1).toArray()[0];
- 额外优化建议:
为避免数组为空时抛出异常,建议增加空值判断:
db = getmongoservice("xxx").db("xxx"); resultList = db.xxx.find().sort( { createdAt: -1 } ).limit(1).toArray(); response = resultList.length() > 0 ? resultList[0] : "";
内容的提问来源于stack exchange,提问作者Aytekin Şahin
相关产品推荐
相关产品推荐

