Spring Data Mongodb:如何转储通过QueryDsl生成的原始查询/命令?

时间:2016-03-13 04:40:41

标签: java mongodb spring-data spring-data-mongodb querydsl

我使用Spring Data's Querydsl integration使用谓词执行查询。

findAll(predicate, pageable)

有没有办法转储执行的实际原始查询/命令?

我也看过这个问题的答案,但它并没有为我工作.. Configure logging for the MongoDB Java driver

- Update-- 我通过添加logging.level.org.mongodb.driver = DEBUG设法让日志工作正常工作 在application.properties(不是log4j.properties)

但是,我仍然无法看到正在执行的原始查询:

2016-03-23 21:50:56 DEBUG查询:56 - 查询完成 2016-03-23 21:50:56 DEBUG查询:56 - 在连接[connectionId {localValue:4,serverValue:42631}]上发送命名空间testdb.reservation的查询到服务器ds046785.mongolab.com:39186

1 个答案:

答案 0 :(得分:4)

通过在mongo shell中使用以下命令设置配置文件值来启用探查器:

db.setProfilingLevel(2)

可以使用以下命令查看探查器的输出:

db.system.profile.find( { millis : { $gt : 100 } } )

此命令显示超过100毫秒的所有操作