You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Spring Boot日志中查看MongoDB数组过滤器?

问题

我有一个包含数组过滤器的更新查询,代码如下:

Query query = new Query(Criteria.where("_id").is(projectId));
Update update = new Update().set("requirements.$[element].status", status)
        .filterArray(Criteria.where("element._id").is(requirementId));
mongoTemplate.updateFirst(query, update, "Projects");

我开启了日志配置:

logging.level.org.springframework.data.mongodb.core.MongoTemplate=DEBUG

但日志中仅显示:

o.s.data.mongodb.core.MongoTemplate: Calling update using query: { "_id": "633f3def5272e102ee753e98"}} and update: { "$set" : { "requirements.$[element].status" : "PENDING"}} in collection: Projects

我希望查看数组过滤器,但它并未显示,请问是否有办法在日志中查看数组过滤器?

解决方案
  • 提升日志级别到TRACE:MongoTemplate的DEBUG级别不会输出数组过滤器(arrayFilters)的细节,需要将日志级别调整为TRACE。修改日志配置:

    logging.level.org.springframework.data.mongodb.core.MongoTemplate=TRACE
    

    开启TRACE级别后,日志会输出完整的更新操作信息,包含arrayFilters的具体内容。

  • 手动打印调试(可选):如果不想全局开启TRACE级别,可以在代码执行更新操作前,手动打印数组过滤器内容:

    // 打印数组过滤器详情
    System.out.println("Array Filters: " + update.getArrayFilters());
    

内容的提问来源于stack exchange,提问作者Zakhar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 09:16:34