如何在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
相关产品推荐
相关产品推荐

